Compare commits
No commits in common. "53a2609204c52b8c520d32e61390e6004d3d73cd" and "77663c229f79ebbb8912b2536e6068c6146abe50" have entirely different histories.
53a2609204
...
77663c229f
84 changed files with 1016 additions and 1934 deletions
156
flake.lock
generated
156
flake.lock
generated
|
@ -20,11 +20,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725753098,
|
"lastModified": 1725199881,
|
||||||
"narHash": "sha256-/NO/h/qD/eJXAQr/fHA4mdDgYsNT9thHQ+oT6KPi2ac=",
|
"narHash": "sha256-jsmipf/u1GFZE5tBUkr56CHMN6VpUWCAjfLIhvQijU0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "e4a13203112a036fc7f437d391c7810f3dd5ab52",
|
"rev": "f8a687dd29ff019657498f1bd14da2fbbf0e604b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -34,6 +34,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1673956053,
|
||||||
|
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1696426674,
|
||||||
|
@ -49,6 +65,24 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681202837,
|
||||||
|
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -56,11 +90,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726440980,
|
"lastModified": 1725694918,
|
||||||
"narHash": "sha256-ChhIrjtdu5d83W+YDRH+Ec5g1MmM0xk6hJnkz15Ot7M=",
|
"narHash": "sha256-+HsjshXpqNiJHLaJaK0JnIicJ/a1NquKcfn4YZ3ILgg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "a9c9cc6e50f7cbd2d58ccb1cd46a1e06e9e445ff",
|
"rev": "aaebdea769a5c10f1c6e50ebdf5924c1a13f0cda",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -110,11 +144,11 @@
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726430622,
|
"lastModified": 1725752806,
|
||||||
"narHash": "sha256-50vt1snpVwS5lqvvH4p6DHiEWspJUZuJ1kYy1DKtrfM=",
|
"narHash": "sha256-UwmsA7O9Wofu6YWldyR8NDv1bzxNICIg85/uOrVq69Y=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "9e356562446f44c471ae38a80506a9df039305d6",
|
"rev": "312411fc7073143a8bf1fc3ba23ef403b7d15eee",
|
||||||
"revCount": 5224,
|
"revCount": 5195,
|
||||||
"submodules": true,
|
"submodules": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/hyprwm/Hyprland"
|
"url": "https://github.com/hyprwm/Hyprland"
|
||||||
|
@ -168,11 +202,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725997860,
|
"lastModified": 1725188252,
|
||||||
"narHash": "sha256-d/rZ/fHR5l1n7PeyLw0StWMNLXVU9c4HFyfskw568so=",
|
"narHash": "sha256-yBH8c4GDaEAtBrh+BqIlrx5vp6gG/Gu8fQQK63KAQgs=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprlang",
|
"repo": "hyprlang",
|
||||||
"rev": "dfeb5811dd6485490cce18d6cc1e38a055eea876",
|
"rev": "c12ab785ce1982f82594aff03b3104c598186ddd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -231,13 +265,48 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"myneovim": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725776584,
|
||||||
|
"narHash": "sha256-OjyGCf08yEIHprN2QIpCL2+dee6xyQJvemhNEFAytL8=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "43f0e5f1b318cf5f6dee6b26398ffd19d5153c8a",
|
||||||
|
"revCount": 24,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.thewizard.link/wizardlink/neovim"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.thewizard.link/wizardlink/neovim"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-minecraft": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725760053,
|
||||||
|
"narHash": "sha256-DS9B2q9nSPh07CgNRQwCybRWhgf1QV5KDRU/umVcuUc=",
|
||||||
|
"owner": "Infinidoge",
|
||||||
|
"repo": "nix-minecraft",
|
||||||
|
"rev": "065be4d743d9a0caa83196b6c570e70aec042944",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Infinidoge",
|
||||||
|
"repo": "nix-minecraft",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725983898,
|
"lastModified": 1725103162,
|
||||||
"narHash": "sha256-4b3A9zPpxAxLnkF9MawJNHDtOOl6ruL0r6Og1TEDGCE=",
|
"narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1355a0cbfeac61d785b7183c0caaec1f97361b43",
|
"rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -249,11 +318,27 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726243404,
|
"lastModified": 1715266358,
|
||||||
"narHash": "sha256-sjiGsMh+1cWXb53Tecsm4skyFNag33GPbVgCdfj3n9I=",
|
"narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "345c263f2f53a3710abe117f28a5cb86d0ba4059",
|
"rev": "f1010e0469db743d14519a1efd37e23f8513d714",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725634671,
|
||||||
|
"narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -267,23 +352,25 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"myneovim": "myneovim",
|
||||||
|
"nix-minecraft": "nix-minecraft",
|
||||||
|
"nixpkgs": "nixpkgs_3",
|
||||||
"spicetify-nix": "spicetify-nix"
|
"spicetify-nix": "spicetify-nix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"spicetify-nix": {
|
"spicetify-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726460241,
|
"lastModified": 1725768938,
|
||||||
"narHash": "sha256-wslbKgh6ZEqHzZJj1eHGRENZQ4r1C4LmAvaBKvbiGzg=",
|
"narHash": "sha256-Lmd6L/hF0hjid0ThYH8vYdyjkor95NvwzptlexdFmto=",
|
||||||
"owner": "Gerg-L",
|
"owner": "Gerg-L",
|
||||||
"repo": "spicetify-nix",
|
"repo": "spicetify-nix",
|
||||||
"rev": "fe1722602352cba0448f3961df90b5d1f55d5675",
|
"rev": "f972e25c903479e175b1730292536de219e9b0c3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -307,6 +394,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"xdph": {
|
"xdph": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprland-protocols": "hyprland-protocols",
|
"hyprland-protocols": "hyprland-protocols",
|
||||||
|
@ -324,11 +426,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726046979,
|
"lastModified": 1725203932,
|
||||||
"narHash": "sha256-6SEsjurq9cdTkITA6d49ncAJe4O/8CgRG5/F//s6Xh8=",
|
"narHash": "sha256-VLULC/OnI+6R9KEP2OIGk+uLJJsfRlaLouZ5gyFd2+Y=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"rev": "e695669fd8e1d1be9eaae40f35e00f8bd8b64c18",
|
"rev": "2425e8f541525fa7409d9f26a8ffaf92a3767251",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
41
flake.nix
41
flake.nix
|
@ -15,6 +15,8 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||||||
|
|
||||||
|
myneovim.url = "git+https://git.thewizard.link/wizardlink/neovim";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
|
@ -24,45 +26,20 @@
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixosConfigurations = {
|
nixosConfigurations.wizdesk =
|
||||||
wizdesk =
|
let
|
||||||
let
|
specialArgs = inputs;
|
||||||
specialArgs = inputs;
|
modules = [ ./nixos.nix ];
|
||||||
modules = [
|
in
|
||||||
./modules/nixos
|
nixpkgs.lib.nixosSystem { inherit system specialArgs modules; };
|
||||||
./specific/wizdesk/nixos.nix
|
|
||||||
];
|
|
||||||
in
|
|
||||||
nixpkgs.lib.nixosSystem { inherit system specialArgs modules; };
|
|
||||||
|
|
||||||
wizlap =
|
|
||||||
let
|
|
||||||
specialArgs = inputs;
|
|
||||||
modules = [
|
|
||||||
./modules/nixos
|
|
||||||
./specific/wizlap/nixos.nix
|
|
||||||
];
|
|
||||||
in
|
|
||||||
nixpkgs.lib.nixosSystem { inherit system specialArgs modules; };
|
|
||||||
};
|
|
||||||
|
|
||||||
homeConfigurations.wizardlink = home-manager.lib.homeManagerConfiguration {
|
homeConfigurations.wizardlink = home-manager.lib.homeManagerConfiguration {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
|
|
||||||
extraSpecialArgs = inputs;
|
extraSpecialArgs = inputs;
|
||||||
modules = [ ./specific/home-manager.nix ];
|
modules = [ ./home-manager.nix ];
|
||||||
};
|
};
|
||||||
|
|
||||||
formatter."${system}" = pkgs.nixfmt-rfc-style;
|
formatter."${system}" = pkgs.nixfmt-rfc-style;
|
||||||
|
|
||||||
homeManagerModules = {
|
|
||||||
emacs = import ./modules/home-manager/programs/emacs;
|
|
||||||
hyprlandConfig = import ./modules/home-manager/programs/hyprland;
|
|
||||||
neovim = import ./modules/home-manager/programs/neovim;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixosModules = {
|
|
||||||
default = import ./modules/nixos;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
323
home-manager.nix
Normal file
323
home-manager.nix
Normal file
|
@ -0,0 +1,323 @@
|
||||||
|
{ pkgs, myneovim, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
#
|
||||||
|
## HOME CONFIGURATION #
|
||||||
|
#
|
||||||
|
|
||||||
|
# Import configurations for better modularity.
|
||||||
|
imports = [
|
||||||
|
./programs/alacritty.nix
|
||||||
|
./programs/emacs
|
||||||
|
./programs/fish
|
||||||
|
./programs/git.nix
|
||||||
|
./programs/hyprland
|
||||||
|
./programs/mangohud.nix
|
||||||
|
./programs/obs-studio.nix
|
||||||
|
./programs/rofi
|
||||||
|
./programs/spotify
|
||||||
|
./programs/tmux
|
||||||
|
./programs/waybar.nix
|
||||||
|
./services/openttd.nix
|
||||||
|
myneovim.homeManagerModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
# Home Manager needs a bit of information about you and the paths it should
|
||||||
|
# manage.
|
||||||
|
home.username = "wizardlink";
|
||||||
|
home.homeDirectory = "/home/wizardlink";
|
||||||
|
|
||||||
|
# This value determines the Home Manager release that your configuration is
|
||||||
|
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||||
|
# introduces backwards incompatible changes.
|
||||||
|
#
|
||||||
|
# You should not change this value, even if you update Home Manager. If you do
|
||||||
|
# want to update the value, then make sure to first check the Home Manager
|
||||||
|
# release notes.
|
||||||
|
home.stateVersion = "23.05"; # Please read the comment before changing.
|
||||||
|
|
||||||
|
# You can also manage environment variables but you will have to manually
|
||||||
|
# source
|
||||||
|
#
|
||||||
|
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||||
|
#
|
||||||
|
# or
|
||||||
|
#
|
||||||
|
# /etc/profiles/per-user/wizardlink/etc/profile.d/hm-session-vars.sh
|
||||||
|
# if you don't want to manage your shell through Home Manager.
|
||||||
|
home.sessionVariables = {
|
||||||
|
EDITOR = "nvim";
|
||||||
|
|
||||||
|
NIXOS_OZONE_WL = "1";
|
||||||
|
QT_QPA_PLATFORM = "wayland";
|
||||||
|
};
|
||||||
|
|
||||||
|
##
|
||||||
|
## PACKAGES #
|
||||||
|
##
|
||||||
|
|
||||||
|
# Let Home Manager install and manage itself.
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
# Allow unfree packages
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
# The home.packages option allows you to install Nix packages into your
|
||||||
|
# environment.
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
# # You can also create simple shell scripts directly inside your
|
||||||
|
# # configuration. For example, this adds a command 'my-hello' to your
|
||||||
|
# # environment:
|
||||||
|
# (pkgs.writeShellScriptBin "my-hello" ''
|
||||||
|
# echo "Hello, ${config.home.username}!"
|
||||||
|
# '')
|
||||||
|
|
||||||
|
## Tools
|
||||||
|
# Utilities
|
||||||
|
brightnessctl
|
||||||
|
fastfetch
|
||||||
|
firefox
|
||||||
|
pavucontrol
|
||||||
|
protonvpn-gui
|
||||||
|
qbittorrent
|
||||||
|
qdirstat
|
||||||
|
speedcrunch
|
||||||
|
vlc
|
||||||
|
yt-dlp
|
||||||
|
zathura
|
||||||
|
|
||||||
|
# Personal utilities
|
||||||
|
anki
|
||||||
|
ledger
|
||||||
|
vesktop
|
||||||
|
|
||||||
|
# Editing
|
||||||
|
libreoffice
|
||||||
|
|
||||||
|
# Creative work
|
||||||
|
blender
|
||||||
|
krita
|
||||||
|
lmms
|
||||||
|
orca-slicer
|
||||||
|
shotcut
|
||||||
|
vcv-rack
|
||||||
|
|
||||||
|
## Entertainment
|
||||||
|
jellyfin-media-player
|
||||||
|
|
||||||
|
# Gaming
|
||||||
|
protontricks
|
||||||
|
wineWowPackages.stagingFull
|
||||||
|
winetricks
|
||||||
|
|
||||||
|
# Games
|
||||||
|
openttd
|
||||||
|
prismlauncher
|
||||||
|
shattered-pixel-dungeon
|
||||||
|
xonotic
|
||||||
|
|
||||||
|
## Libraries
|
||||||
|
libsForQt5.kdegraphics-thumbnailers
|
||||||
|
libsForQt5.kio-extras
|
||||||
|
rnnoise-plugin
|
||||||
|
xwaylandvideobridge
|
||||||
|
|
||||||
|
## Development
|
||||||
|
beekeeper-studio
|
||||||
|
lazygit
|
||||||
|
|
||||||
|
## Desktop environment
|
||||||
|
cliphist
|
||||||
|
grim
|
||||||
|
libsForQt5.ark
|
||||||
|
mako
|
||||||
|
slurp
|
||||||
|
swww
|
||||||
|
|
||||||
|
# Mail client
|
||||||
|
thunderbird
|
||||||
|
|
||||||
|
## Theming
|
||||||
|
(nerdfonts.override {
|
||||||
|
fonts = [
|
||||||
|
"FantasqueSansMono"
|
||||||
|
"NerdFontsSymbolsOnly"
|
||||||
|
];
|
||||||
|
})
|
||||||
|
libsForQt5.qtstyleplugin-kvantum
|
||||||
|
libsForQt5.qtwayland
|
||||||
|
qt6Packages.qtstyleplugin-kvantum
|
||||||
|
qt6Packages.qtwayland
|
||||||
|
|
||||||
|
# Create an FHS environment using the command `fhs`, enabling the execution of non-NixOS packages in NixOS!
|
||||||
|
(
|
||||||
|
let
|
||||||
|
base = appimageTools.defaultFhsEnvArgs;
|
||||||
|
in
|
||||||
|
buildFHSUserEnv (
|
||||||
|
base
|
||||||
|
// {
|
||||||
|
name = "fhs";
|
||||||
|
targetPkgs =
|
||||||
|
pkgs:
|
||||||
|
(
|
||||||
|
# pkgs.buildFHSUserEnv provides only a minimal FHS environment,
|
||||||
|
# lacking many basic packages needed by most software.
|
||||||
|
# Therefore, we need to add them manually.
|
||||||
|
#
|
||||||
|
# pkgs.appimageTools provides basic packages required by most software.
|
||||||
|
(base.targetPkgs pkgs) ++ (with pkgs; [ nodejs ])
|
||||||
|
);
|
||||||
|
profile = "export FHS=1";
|
||||||
|
runScript = "bash";
|
||||||
|
extraOutputsToInstall = [ "dev" ];
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
];
|
||||||
|
|
||||||
|
#
|
||||||
|
## DOTFILES #
|
||||||
|
#
|
||||||
|
|
||||||
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||||
|
# plain files is through 'home.file'.
|
||||||
|
home.file = {
|
||||||
|
# Cattpuccin theme for fish shell.
|
||||||
|
".config/fish/themes/Catppuccin-Frappe.theme".source = ./programs/fish/Catppuccin-Frappe.theme;
|
||||||
|
|
||||||
|
# Configuration for gamemode, for running games with optimizations.
|
||||||
|
".config/gamemode.ini".source = ./programs/gamemode.ini;
|
||||||
|
|
||||||
|
# Configuration for mako, a notification daemon.
|
||||||
|
".config/mako".source = ./programs/mako;
|
||||||
|
|
||||||
|
## Kvantum's theme configuration.
|
||||||
|
".config/Kvantum/Catppuccin-Frappe-Lavender" = {
|
||||||
|
source = "${
|
||||||
|
pkgs.catppuccin-kvantum.override {
|
||||||
|
accent = "Lavender";
|
||||||
|
variant = "Frappe";
|
||||||
|
}
|
||||||
|
}/share/Kvantum/Catppuccin-Frappe-Lavender";
|
||||||
|
};
|
||||||
|
|
||||||
|
".config/Kvantum/kvantum.kvconfig".text = ''
|
||||||
|
[General]
|
||||||
|
theme=Catppuccin-Frappe-Lavender
|
||||||
|
'';
|
||||||
|
##
|
||||||
|
|
||||||
|
## Themeing configuration for qt5 and qt6
|
||||||
|
".config/qt5ct/colors".source = ./theming/qt5ct;
|
||||||
|
|
||||||
|
".config/qt6ct/colors".source = ./theming/qt5ct; # We use the qt5ct because it's the SAME spec
|
||||||
|
##
|
||||||
|
|
||||||
|
# Configure pipewire for microphone noise supression.
|
||||||
|
".config/pipewire/pipewire.conf.d/99-input-denoising.conf".text = ''
|
||||||
|
context.modules = [
|
||||||
|
{ name = libpipewire-module-filter-chain
|
||||||
|
args = {
|
||||||
|
node.description = "Noise Canceling source"
|
||||||
|
media.name = "Noise Canceling source"
|
||||||
|
filter.graph = {
|
||||||
|
nodes = [
|
||||||
|
{
|
||||||
|
type = ladspa
|
||||||
|
name = rnnoise
|
||||||
|
plugin = ${pkgs.rnnoise-plugin}/lib/ladspa/librnnoise_ladspa.so
|
||||||
|
label = noise_suppressor_mono
|
||||||
|
control = {
|
||||||
|
"VAD Threshold (%)" = 60.0
|
||||||
|
"VAD Grace Period (ms)" = 175
|
||||||
|
"Retroactive VAD Grace (ms)" = 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
capture.props = {
|
||||||
|
node.name = "capture.rnnoise_source"
|
||||||
|
node.passive = true
|
||||||
|
audio.rate = 48000
|
||||||
|
}
|
||||||
|
playback.props = {
|
||||||
|
node.name = "rnnoise_source"
|
||||||
|
media.class = Audio/Source
|
||||||
|
audio.rate = 48000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Configure DXVK
|
||||||
|
".config/dxvk.conf".text = ''
|
||||||
|
dxgi.tearFree = True
|
||||||
|
dxvk.enableGraphicsPipelineLibrary = True
|
||||||
|
|
||||||
|
dxvk.enableAsync = True
|
||||||
|
'';
|
||||||
|
|
||||||
|
".local/share/SpeedCrunch/color-schemes/catppuccin-frappe.json" = {
|
||||||
|
recursive = true;
|
||||||
|
source = builtins.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/catppuccin/speedcrunch/34f2b382de0188d2fd85f59a8a366f313fc30a71/themes/catppuccin-frappe.json";
|
||||||
|
sha256 = "sha256:0imx5a53p3ls5kddplgr7mbpbidrmzl9qiwpv7r8jjmsf8yxs0i4";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# My utility scripts
|
||||||
|
".local/share/scripts" = {
|
||||||
|
source = ./scripts;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#
|
||||||
|
## THEMING #
|
||||||
|
#
|
||||||
|
home.pointerCursor = {
|
||||||
|
package = pkgs.catppuccin-cursors.frappeLavender;
|
||||||
|
name = "catppuccin-frappe-lavender-cursors";
|
||||||
|
|
||||||
|
gtk.enable = true;
|
||||||
|
x11.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Configure GTK.
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
gtk3.extraConfig = {
|
||||||
|
gtk-application-prefer-dark-theme = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk4.extraConfig = {
|
||||||
|
gtk-application-prefer-dark-theme = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
iconTheme = {
|
||||||
|
name = "Papirus-Dark";
|
||||||
|
package = pkgs.papirus-icon-theme.override { color = "violet"; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Configure QT
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme.name = "qtct";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Configure XDG
|
||||||
|
xdg.mimeApps.defaultApplications = {
|
||||||
|
"inode/directory" = [ "thunar.desktop" ];
|
||||||
|
"text/html" = [ "firefox.desktop" ];
|
||||||
|
"video/mp4" = [ "vlc.desktop" ];
|
||||||
|
"video/x-matroska" = [ "vlc.desktop" ];
|
||||||
|
"x-scheme-handler/about" = [ "firefox.desktop" ];
|
||||||
|
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
||||||
|
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
||||||
|
"x-scheme-handler/unknown" = [ "firefox.desktop" ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,79 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.sessionVariables = {
|
|
||||||
NIXOS_OZONE_WL = "1";
|
|
||||||
QT_QPA_PLATFORM = "wayland";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.file = {
|
|
||||||
# Configuration for gamemode, for running games with optimizations.
|
|
||||||
".config/gamemode.ini".source = ./programs/gamemode.ini;
|
|
||||||
|
|
||||||
# Configuration for mako, a notification daemon.
|
|
||||||
".config/mako".source = ./programs/mako;
|
|
||||||
|
|
||||||
# Configure pipewire for microphone noise supression.
|
|
||||||
".config/pipewire/pipewire.conf.d/99-input-denoising.conf".text = ''
|
|
||||||
context.modules = [
|
|
||||||
{ name = libpipewire-module-filter-chain
|
|
||||||
args = {
|
|
||||||
node.description = "Noise Canceling source"
|
|
||||||
media.name = "Noise Canceling source"
|
|
||||||
filter.graph = {
|
|
||||||
nodes = [
|
|
||||||
{
|
|
||||||
type = ladspa
|
|
||||||
name = rnnoise
|
|
||||||
plugin = ${pkgs.rnnoise-plugin}/lib/ladspa/librnnoise_ladspa.so
|
|
||||||
label = noise_suppressor_mono
|
|
||||||
control = {
|
|
||||||
"VAD Threshold (%)" = 60.0
|
|
||||||
"VAD Grace Period (ms)" = 175
|
|
||||||
"Retroactive VAD Grace (ms)" = 50
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
capture.props = {
|
|
||||||
node.name = "capture.rnnoise_source"
|
|
||||||
node.passive = true
|
|
||||||
audio.rate = 48000
|
|
||||||
}
|
|
||||||
playback.props = {
|
|
||||||
node.name = "rnnoise_source"
|
|
||||||
media.class = Audio/Source
|
|
||||||
audio.rate = 48000
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Configure DXVK
|
|
||||||
".config/dxvk.conf".text = ''
|
|
||||||
dxgi.tearFree = True
|
|
||||||
dxvk.enableGraphicsPipelineLibrary = True
|
|
||||||
|
|
||||||
dxvk.enableAsync = True
|
|
||||||
'';
|
|
||||||
|
|
||||||
# My utility scripts
|
|
||||||
".local/share/scripts" = {
|
|
||||||
source = ./scripts;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Configure XDG
|
|
||||||
xdg.mimeApps.defaultApplications = {
|
|
||||||
"inode/directory" = [ "thunar.desktop" ];
|
|
||||||
"text/html" = [ "firefox.desktop" ];
|
|
||||||
"video/mp4" = [ "vlc.desktop" ];
|
|
||||||
"video/x-matroska" = [ "vlc.desktop" ];
|
|
||||||
"x-scheme-handler/about" = [ "firefox.desktop" ];
|
|
||||||
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
|
||||||
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
|
||||||
"x-scheme-handler/unknown" = [ "firefox.desktop" ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./common.nix
|
|
||||||
./packages.nix
|
|
||||||
./theming.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,127 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./programs
|
|
||||||
];
|
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
|
|
||||||
# Allow unfree packages
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
|
||||||
# environment.
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
# # You can also create simple shell scripts directly inside your
|
|
||||||
# # configuration. For example, this adds a command 'my-hello' to your
|
|
||||||
# # environment:
|
|
||||||
# (pkgs.writeShellScriptBin "my-hello" ''
|
|
||||||
# echo "Hello, ${config.home.username}!"
|
|
||||||
# '')
|
|
||||||
|
|
||||||
## Tools
|
|
||||||
# Utilities
|
|
||||||
brightnessctl
|
|
||||||
fastfetch
|
|
||||||
firefox
|
|
||||||
pavucontrol
|
|
||||||
protonvpn-gui
|
|
||||||
qbittorrent
|
|
||||||
qdirstat
|
|
||||||
speedcrunch
|
|
||||||
vlc
|
|
||||||
yt-dlp
|
|
||||||
zathura
|
|
||||||
|
|
||||||
# Personal utilities
|
|
||||||
anki
|
|
||||||
ledger
|
|
||||||
vesktop
|
|
||||||
|
|
||||||
# Editing
|
|
||||||
libreoffice
|
|
||||||
|
|
||||||
# Creative work
|
|
||||||
blender
|
|
||||||
krita
|
|
||||||
lmms
|
|
||||||
orca-slicer
|
|
||||||
shotcut
|
|
||||||
vcv-rack
|
|
||||||
|
|
||||||
## Entertainment
|
|
||||||
jellyfin-media-player
|
|
||||||
|
|
||||||
# Gaming
|
|
||||||
protontricks
|
|
||||||
wineWowPackages.unstableFull
|
|
||||||
winetricks
|
|
||||||
|
|
||||||
# Games
|
|
||||||
openttd
|
|
||||||
prismlauncher
|
|
||||||
shattered-pixel-dungeon
|
|
||||||
xonotic
|
|
||||||
|
|
||||||
## Libraries
|
|
||||||
libsForQt5.kdegraphics-thumbnailers
|
|
||||||
libsForQt5.kio-extras
|
|
||||||
rnnoise-plugin
|
|
||||||
xwaylandvideobridge
|
|
||||||
|
|
||||||
## Development
|
|
||||||
beekeeper-studio
|
|
||||||
lazygit
|
|
||||||
|
|
||||||
## Desktop environment
|
|
||||||
cliphist
|
|
||||||
grim
|
|
||||||
libsForQt5.ark
|
|
||||||
mako
|
|
||||||
slurp
|
|
||||||
swww
|
|
||||||
|
|
||||||
# Mail client
|
|
||||||
thunderbird
|
|
||||||
|
|
||||||
## Theming
|
|
||||||
(nerdfonts.override {
|
|
||||||
fonts = [
|
|
||||||
"FantasqueSansMono"
|
|
||||||
"NerdFontsSymbolsOnly"
|
|
||||||
];
|
|
||||||
})
|
|
||||||
libsForQt5.qtstyleplugin-kvantum
|
|
||||||
libsForQt5.qtwayland
|
|
||||||
qt6Packages.qtstyleplugin-kvantum
|
|
||||||
qt6Packages.qtwayland
|
|
||||||
|
|
||||||
# Create an FHS environment using the command `fhs`, enabling the execution of non-NixOS packages in NixOS!
|
|
||||||
(
|
|
||||||
let
|
|
||||||
base = appimageTools.defaultFhsEnvArgs;
|
|
||||||
in
|
|
||||||
buildFHSUserEnv (
|
|
||||||
base
|
|
||||||
// {
|
|
||||||
name = "fhs";
|
|
||||||
targetPkgs =
|
|
||||||
pkgs:
|
|
||||||
(
|
|
||||||
# pkgs.buildFHSUserEnv provides only a minimal FHS environment,
|
|
||||||
# lacking many basic packages needed by most software.
|
|
||||||
# Therefore, we need to add them manually.
|
|
||||||
#
|
|
||||||
# pkgs.appimageTools provides basic packages required by most software.
|
|
||||||
(base.targetPkgs pkgs) ++ (with pkgs; [ nodejs ])
|
|
||||||
);
|
|
||||||
profile = "export FHS=1";
|
|
||||||
runScript = "bash";
|
|
||||||
extraOutputsToInstall = [ "dev" ];
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./alacritty.nix
|
|
||||||
./direnv
|
|
||||||
./emacs
|
|
||||||
./fish
|
|
||||||
./git.nix
|
|
||||||
./hyprland
|
|
||||||
./mangohud.nix
|
|
||||||
./obs-studio.nix
|
|
||||||
./rofi
|
|
||||||
./spotify
|
|
||||||
./tmux
|
|
||||||
./waybar.nix
|
|
||||||
./neovim
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
|
|
||||||
config = {
|
|
||||||
whitelist = {
|
|
||||||
prefix = [
|
|
||||||
"/mnt/internal/personal/projects"
|
|
||||||
"/mnt/internal/repos"
|
|
||||||
"/mnt/internal/shared/projects"
|
|
||||||
"/mnt/internal/shared/work"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,73 +0,0 @@
|
||||||
# My [Home Manager] module for neovim configuration
|
|
||||||
|
|
||||||
This is my personal configuration for _[neovim]_ using [Nix](https://nixos.org/), so this will not work outside of it - though it can be made to be.
|
|
||||||
|
|
||||||
In this case, I am outputting a [Home Manager] module to be used directly in your configuration, it currently barely has
|
|
||||||
any
|
|
||||||
options and is opinionated due to it being my personal configuration for daily use... But I plan to slowly add options
|
|
||||||
to make it usable by other people.
|
|
||||||
|
|
||||||
## Installing
|
|
||||||
|
|
||||||
First you add this repository as a flake input:
|
|
||||||
|
|
||||||
```nix
|
|
||||||
{
|
|
||||||
inputs = {
|
|
||||||
home-manager = {
|
|
||||||
url = "github:nix-community/home-manager";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
wizardlink-neovim.url = "git+https://git.thewizard.link/wizardlink/neovim";
|
|
||||||
};
|
|
||||||
|
|
||||||
outputs = { home-manager, ... }@inputs: {
|
|
||||||
homeConfigurations.YOURHOSTNAME = home-manager.lib.homeManagerConfiguration {
|
|
||||||
# ...
|
|
||||||
extraSPecialArgs = inputs;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Then in your [Home Manager] configuration you can just import it:
|
|
||||||
|
|
||||||
```nix
|
|
||||||
{ wizardlink-neovim }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
wizardlink-neovim.homeManagerModules.default
|
|
||||||
];
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Configuring
|
|
||||||
|
|
||||||
### [nixd](https://github.com/nix-community/nixd/)
|
|
||||||
|
|
||||||
```nix
|
|
||||||
programs.neovim.flake = {
|
|
||||||
hostname = "nixos"; # Your hostname used to build your system.
|
|
||||||
location = "git+file:///home/wizardlink/.system"; # Where you store your flake.
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
## My neovim failed because of package X not existing
|
|
||||||
|
|
||||||
My configuration is based off of `nixos-unstable` so sometimes your package may not exist or have a different name, I
|
|
||||||
apologise for that but I don't plan on maintaining backwards compatibility. :(
|
|
||||||
|
|
||||||
## How it looks
|
|
||||||
|
|
||||||
Here's some screenshots of how it currently looks like:
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
The theme I'm using is [catppuccin](https://github.com/catppuccin) in case you're curious.
|
|
||||||
|
|
||||||
[neovim]: https://neovim.io/
|
|
||||||
[Home Manager]: https://github.com/nix-community/home-manager
|
|
|
@ -1,284 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (lib) types mkOption;
|
|
||||||
ollamaPackage =
|
|
||||||
if config.programs.neovim.ollama.type == "amd" then pkgs.ollama-rocm else pkgs.ollama-cuda;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.programs.neovim = {
|
|
||||||
flake = {
|
|
||||||
hostname = mkOption {
|
|
||||||
default = "wizdesk";
|
|
||||||
description = "Your NixOS hostname, needed for nixd lsp.";
|
|
||||||
example = "nixos";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
location = mkOption {
|
|
||||||
default = "git+file:///home/wizardlink/.system";
|
|
||||||
description = "Path to your flake location, prepend 'file:///' to it and 'git+' before that if using git.";
|
|
||||||
example = "git+file:///home/wizardlink/.system";
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
ollama.type = mkOption {
|
|
||||||
default = "amd";
|
|
||||||
description = "The type of ollama package to install, AMD GPU accelerated or NVIDIA GPU accelerated.";
|
|
||||||
example = "amd";
|
|
||||||
type = types.enum [
|
|
||||||
"amd"
|
|
||||||
"nvidia"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
programs.neovim = {
|
|
||||||
enable = true;
|
|
||||||
withNodeJs = true;
|
|
||||||
withPython3 = true;
|
|
||||||
|
|
||||||
extraLuaConfig = builtins.readFile ./init.lua;
|
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
# Needed by ollama.nvim
|
|
||||||
curl
|
|
||||||
ollamaPackage
|
|
||||||
|
|
||||||
# CMAKE
|
|
||||||
neocmakelsp
|
|
||||||
|
|
||||||
# C/C++
|
|
||||||
clang-tools
|
|
||||||
gcc # Needed for treesitter
|
|
||||||
|
|
||||||
# HTML/CSS/JSON
|
|
||||||
emmet-ls
|
|
||||||
vscode-langservers-extracted
|
|
||||||
|
|
||||||
# LUA
|
|
||||||
lua-language-server
|
|
||||||
stylua
|
|
||||||
|
|
||||||
# Markdown
|
|
||||||
markdownlint-cli
|
|
||||||
marksman
|
|
||||||
prettierd
|
|
||||||
|
|
||||||
# Nix
|
|
||||||
nixd
|
|
||||||
nixfmt-rfc-style
|
|
||||||
|
|
||||||
# TypeScript
|
|
||||||
typescript-language-server
|
|
||||||
|
|
||||||
# Rust
|
|
||||||
rust-analyzer
|
|
||||||
taplo
|
|
||||||
vscode-extensions.vadimcn.vscode-lldb.adapter
|
|
||||||
|
|
||||||
# Vue
|
|
||||||
vue-language-server
|
|
||||||
|
|
||||||
# Svelte
|
|
||||||
nodePackages.svelte-language-server
|
|
||||||
|
|
||||||
# YAML
|
|
||||||
yaml-language-server
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."nvim/lua" = {
|
|
||||||
recursive = true;
|
|
||||||
source = ./lua;
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."nvim/lua/plugins/astrolsp.lua".text =
|
|
||||||
let
|
|
||||||
hostname = config.programs.neovim.flake.hostname;
|
|
||||||
location = config.programs.neovim.flake.location;
|
|
||||||
in
|
|
||||||
#lua
|
|
||||||
''
|
|
||||||
-- AstroLSP allows you to customize the features in AstroNvim's LSP configuration engine
|
|
||||||
-- Configuration documentation can be found with `:h astrolsp`
|
|
||||||
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
|
||||||
-- as this provides autocomplete and documentation while editing
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
"AstroNvim/astrolsp",
|
|
||||||
---@type AstroLSPOpts
|
|
||||||
opts = {
|
|
||||||
-- Configuration table of features provided by AstroLSP
|
|
||||||
features = {
|
|
||||||
autoformat = true, -- enable or disable auto formatting on start
|
|
||||||
codelens = true, -- enable/disable codelens refresh on start
|
|
||||||
inlay_hints = false, -- enable/disable inlay hints on start
|
|
||||||
semantic_tokens = true, -- enable/disable semantic token highlighting
|
|
||||||
},
|
|
||||||
-- customize lsp formatting options
|
|
||||||
formatting = {
|
|
||||||
-- control auto formatting on save
|
|
||||||
format_on_save = {
|
|
||||||
enabled = true, -- enable or disable format on save globally
|
|
||||||
allow_filetypes = { -- enable format on save for specified filetypes only
|
|
||||||
-- "go",
|
|
||||||
"c",
|
|
||||||
"cpp",
|
|
||||||
"h",
|
|
||||||
"javascript",
|
|
||||||
"jsx",
|
|
||||||
"lua",
|
|
||||||
"nix",
|
|
||||||
"rust",
|
|
||||||
"svelte",
|
|
||||||
"tsx",
|
|
||||||
"typescript",
|
|
||||||
},
|
|
||||||
ignore_filetypes = { -- disable format on save for specified filetypes
|
|
||||||
-- "python",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
disabled = { -- disable formatting capabilities for the listed language servers
|
|
||||||
-- disable lua_ls formatting capability if you want to use StyLua to format your lua code
|
|
||||||
-- "lua_ls",
|
|
||||||
},
|
|
||||||
timeout_ms = 1000, -- default format timeout
|
|
||||||
-- filter = function(client) -- fully override the default formatting function
|
|
||||||
-- return true
|
|
||||||
-- end
|
|
||||||
},
|
|
||||||
-- enable servers that you already have installed without mason
|
|
||||||
servers = {
|
|
||||||
-- "pyright"
|
|
||||||
"clangd",
|
|
||||||
"cmake",
|
|
||||||
"cssls",
|
|
||||||
"eslint",
|
|
||||||
"html",
|
|
||||||
"jsonls",
|
|
||||||
"lua_ls",
|
|
||||||
"marksman",
|
|
||||||
"nixd",
|
|
||||||
"rust_analyzer",
|
|
||||||
"svelte",
|
|
||||||
"taplo",
|
|
||||||
"tsserver",
|
|
||||||
"volar",
|
|
||||||
"yamlls",
|
|
||||||
},
|
|
||||||
-- customize language server configuration options passed to `lspconfig`
|
|
||||||
---@diagnostic disable: missing-fields
|
|
||||||
config = {
|
|
||||||
-- clangd = { capabilities = { offsetEncoding = "utf-8" } },
|
|
||||||
nixd = {
|
|
||||||
settings = {
|
|
||||||
nixd = {
|
|
||||||
options = {
|
|
||||||
nixos = {
|
|
||||||
expr = '(builtins.getFlake ("${location}")).nixosConfigurations.${hostname}.options',
|
|
||||||
},
|
|
||||||
home_manager = {
|
|
||||||
expr =
|
|
||||||
'(builtins.getFlake ("${location}")).homeConfigurations.${hostname}.options',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
tsserver = {
|
|
||||||
init_options = {
|
|
||||||
plugins = {
|
|
||||||
{
|
|
||||||
name = "@vue/typescript-plugin",
|
|
||||||
location = "${pkgs.vue-language-server}/bin/vue-language-server",
|
|
||||||
languages = { "javascript", "typescript", "vue" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
filetypes = {
|
|
||||||
"javascript",
|
|
||||||
"typescript",
|
|
||||||
"vue",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- customize how language servers are attached
|
|
||||||
handlers = {
|
|
||||||
-- a function without a key is simply the default handler, functions take two parameters, the server name and the configured options table for that server
|
|
||||||
-- function(server, opts) require("lspconfig")[server].setup(opts) end
|
|
||||||
|
|
||||||
-- the key is the server that is being setup with `lspconfig`
|
|
||||||
-- rust_analyzer = false, -- setting a handler to false will disable the set up of that language server
|
|
||||||
-- pyright = function(_, opts) require("lspconfig").pyright.setup(opts) end -- or a custom handler function can be passed
|
|
||||||
},
|
|
||||||
-- Configure buffer local auto commands to add when attaching a language server
|
|
||||||
autocmds = {
|
|
||||||
-- first key is the `augroup` to add the auto commands to (:h augroup)
|
|
||||||
lsp_document_highlight = {
|
|
||||||
-- Optional condition to create/delete auto command group
|
|
||||||
-- can either be a string of a client capability or a function of `fun(client, bufnr): boolean`
|
|
||||||
-- condition will be resolved for each client on each execution and if it ever fails for all clients,
|
|
||||||
-- the auto commands will be deleted for that buffer
|
|
||||||
cond = "textDocument/documentHighlight",
|
|
||||||
-- cond = function(client, bufnr) return client.name == "lua_ls" end,
|
|
||||||
-- list of auto commands to set
|
|
||||||
{
|
|
||||||
-- events to trigger
|
|
||||||
event = { "CursorHold", "CursorHoldI" },
|
|
||||||
-- the rest of the autocmd options (:h nvim_create_autocmd)
|
|
||||||
desc = "Document Highlighting",
|
|
||||||
callback = function()
|
|
||||||
vim.lsp.buf.document_highlight()
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
event = { "CursorMoved", "CursorMovedI", "BufLeave" },
|
|
||||||
desc = "Document Highlighting Clear",
|
|
||||||
callback = function()
|
|
||||||
vim.lsp.buf.clear_references()
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- mappings to be set up on attaching of a language server
|
|
||||||
mappings = {
|
|
||||||
n = {
|
|
||||||
gl = {
|
|
||||||
function()
|
|
||||||
vim.diagnostic.open_float()
|
|
||||||
end,
|
|
||||||
desc = "Hover diagnostics",
|
|
||||||
},
|
|
||||||
-- a `cond` key can provided as the string of a server capability to be required to attach, or a function with `client` and `bufnr` parameters from the `on_attach` that returns a boolean
|
|
||||||
-- gD = {
|
|
||||||
-- function() vim.lsp.buf.declaration() end,
|
|
||||||
-- desc = "Declaration of current symbol",
|
|
||||||
-- cond = "textDocument/declaration",
|
|
||||||
-- },
|
|
||||||
-- ["<Leader>uY"] = {
|
|
||||||
-- function() require("astrolsp.toggles").buffer_semantic_tokens() end,
|
|
||||||
-- desc = "Toggle LSP semantic highlight (buffer)",
|
|
||||||
-- cond = function(client) return client.server_capabilities.semanticTokensProvider and vim.lsp.semantic_tokens end,
|
|
||||||
-- },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- A custom `on_attach` function to be run after the default `on_attach` function
|
|
||||||
-- takes two parameters `client` and `bufnr` (`:h lspconfig-setup`)
|
|
||||||
on_attach = function(client, bufnr)
|
|
||||||
-- this would disable semanticTokensProvider for all clients
|
|
||||||
-- client.server_capabilities.semanticTokensProvider = nil
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.5 MiB |
Binary file not shown.
Before Width: | Height: | Size: 1.6 MiB |
Binary file not shown.
Before Width: | Height: | Size: 1.7 MiB |
|
@ -1,19 +0,0 @@
|
||||||
-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution
|
|
||||||
-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk.
|
|
||||||
local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
|
|
||||||
if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then
|
|
||||||
-- stylua: ignore
|
|
||||||
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
|
|
||||||
end
|
|
||||||
vim.opt.rtp:prepend(lazypath)
|
|
||||||
|
|
||||||
-- validate that lazy is available
|
|
||||||
if not pcall(require, "lazy") then
|
|
||||||
-- stylua: ignore
|
|
||||||
vim.api.nvim_echo({ { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {})
|
|
||||||
vim.fn.getchar()
|
|
||||||
vim.cmd.quit()
|
|
||||||
end
|
|
||||||
|
|
||||||
require "lazy_setup"
|
|
||||||
require "polish"
|
|
|
@ -1,40 +0,0 @@
|
||||||
-- AstroCommunity: import any community modules here
|
|
||||||
-- We import this file in `lazy_setup.lua` before the `plugins/` folder.
|
|
||||||
-- This guarantees that the specs are processed before any user plugins.
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
"AstroNvim/astrocommunity",
|
|
||||||
{ import = "astrocommunity.colorscheme.catppuccin" },
|
|
||||||
{
|
|
||||||
"catppuccin/nvim",
|
|
||||||
name = "catppuccin",
|
|
||||||
opts = function(_, config)
|
|
||||||
config.flavour = "frappe"
|
|
||||||
config.transparent_background = true
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
{ import = "astrocommunity.editing-support.todo-comments-nvim" },
|
|
||||||
{ import = "astrocommunity.editing-support.zen-mode-nvim" },
|
|
||||||
|
|
||||||
{ import = "astrocommunity.motion.flash-nvim" },
|
|
||||||
{ import = "astrocommunity.motion.flit-nvim" },
|
|
||||||
{ import = "astrocommunity.motion.leap-nvim" },
|
|
||||||
{ import = "astrocommunity.motion.mini-ai" },
|
|
||||||
{ import = "astrocommunity.motion.mini-surround" },
|
|
||||||
|
|
||||||
{ import = "astrocommunity.pack.cmake" },
|
|
||||||
{ import = "astrocommunity.pack.cpp" },
|
|
||||||
{ import = "astrocommunity.pack.godot" },
|
|
||||||
{ import = "astrocommunity.pack.html-css" },
|
|
||||||
{ import = "astrocommunity.pack.json" },
|
|
||||||
{ import = "astrocommunity.pack.lua" },
|
|
||||||
{ import = "astrocommunity.pack.markdown" },
|
|
||||||
{ import = "astrocommunity.pack.nix" },
|
|
||||||
{ import = "astrocommunity.pack.rust" },
|
|
||||||
{ import = "astrocommunity.pack.toml" },
|
|
||||||
{ import = "astrocommunity.pack.typescript" },
|
|
||||||
{ import = "astrocommunity.pack.vue" },
|
|
||||||
{ import = "astrocommunity.pack.yaml" },
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
require("lazy").setup({
|
|
||||||
{
|
|
||||||
"AstroNvim/AstroNvim",
|
|
||||||
--version = "^4", -- Remove version tracking to elect for nighly AstroNvim
|
|
||||||
import = "astronvim.plugins",
|
|
||||||
opts = { -- AstroNvim options must be set here with the `import` key
|
|
||||||
mapleader = " ", -- This ensures the leader key must be configured before Lazy is set up
|
|
||||||
maplocalleader = ",", -- This ensures the localleader key must be configured before Lazy is set up
|
|
||||||
icons_enabled = true, -- Set to false to disable icons (if no Nerd Font is available)
|
|
||||||
pin_plugins = nil, -- Default will pin plugins when tracking `version` of AstroNvim, set to true/false to override
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{ import = "community" },
|
|
||||||
{ import = "plugins" },
|
|
||||||
} --[[@as LazySpec]], {
|
|
||||||
-- Configure any other `lazy.nvim` configuration options here
|
|
||||||
install = { colorscheme = { "astrodark", "habamax" } },
|
|
||||||
ui = { backdrop = 100 },
|
|
||||||
performance = {
|
|
||||||
rtp = {
|
|
||||||
-- disable some rtp plugins, add more to your liking
|
|
||||||
disabled_plugins = {
|
|
||||||
"gzip",
|
|
||||||
"netrwPlugin",
|
|
||||||
"tarPlugin",
|
|
||||||
"tohtml",
|
|
||||||
"zipPlugin",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
} --[[@as LazyConfig]])
|
|
|
@ -1,84 +0,0 @@
|
||||||
-- AstroCore provides a central place to modify mappings, vim options, autocommands, and more!
|
|
||||||
-- Configuration documentation can be found with `:h astrocore`
|
|
||||||
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
|
||||||
-- as this provides autocomplete and documentation while editing
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
"AstroNvim/astrocore",
|
|
||||||
---@type AstroCoreOpts
|
|
||||||
opts = {
|
|
||||||
-- Configure core features of AstroNvim
|
|
||||||
features = {
|
|
||||||
large_buf = { size = 1024 * 500, lines = 10000 }, -- set global limits for large files for disabling features like treesitter
|
|
||||||
autopairs = true, -- enable autopairs at start
|
|
||||||
cmp = true, -- enable completion at start
|
|
||||||
diagnostics_mode = 3, -- diagnostic mode on start (0 = off, 1 = no signs/virtual text, 2 = no virtual text, 3 = on)
|
|
||||||
highlighturl = true, -- highlight URLs at start
|
|
||||||
notifications = true, -- enable notifications at start
|
|
||||||
},
|
|
||||||
-- Diagnostics configuration (for vim.diagnostics.config({...})) when diagnostics are on
|
|
||||||
diagnostics = {
|
|
||||||
virtual_text = true,
|
|
||||||
underline = true,
|
|
||||||
},
|
|
||||||
-- vim options can be configured here
|
|
||||||
options = {
|
|
||||||
opt = { -- vim.opt.<key>
|
|
||||||
autoindent = true, -- indents automatically based on context
|
|
||||||
expandtab = true, -- use spaces instead of tabs
|
|
||||||
grepprg = "rg --vimgrep", -- use ripgrep on grep actions
|
|
||||||
number = true, -- sets vim.opt.number
|
|
||||||
relativenumber = true, -- sets vim.opt.relativenumber
|
|
||||||
shiftwidth = 2, -- how many spaces after indentation
|
|
||||||
signcolumn = "auto", -- sets vim.opt.signcolumn to auto
|
|
||||||
smartindent = true, -- smartly indent
|
|
||||||
spell = false, -- sets vim.opt.spell
|
|
||||||
tabstop = 2, -- how many spaces to indent when pressing tab
|
|
||||||
wrap = false, -- sets vim.opt.wrap
|
|
||||||
},
|
|
||||||
g = { -- vim.g.<key>
|
|
||||||
-- configure global vim variables (vim.g)
|
|
||||||
-- NOTE: `mapleader` and `maplocalleader` must be set in the AstroNvim opts or before `lazy.setup`
|
|
||||||
-- This can be found in the `lua/lazy_setup.lua` file
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- Mappings can be configured through AstroCore as well.
|
|
||||||
-- NOTE: keycodes follow the casing in the vimdocs. For example, `<Leader>` must be capitalized
|
|
||||||
mappings = {
|
|
||||||
-- first key is the mode
|
|
||||||
n = {
|
|
||||||
-- second key is the lefthand side of the map
|
|
||||||
|
|
||||||
-- navigate buffer tabs with `H` and `L`
|
|
||||||
-- L = {
|
|
||||||
-- function() require("astrocore.buffer").nav(vim.v.count > 0 and vim.v.count or 1) end,
|
|
||||||
-- desc = "Next buffer",
|
|
||||||
-- },
|
|
||||||
-- H = {
|
|
||||||
-- function() require("astrocore.buffer").nav(-(vim.v.count > 0 and vim.v.count or 1)) end,
|
|
||||||
-- desc = "Previous buffer",
|
|
||||||
-- },
|
|
||||||
|
|
||||||
-- mappings seen under group name "Buffer"
|
|
||||||
["<Leader>bD"] = {
|
|
||||||
function()
|
|
||||||
require("astroui.status.heirline").buffer_picker(function(bufnr)
|
|
||||||
require("astrocore.buffer").close(bufnr)
|
|
||||||
end)
|
|
||||||
end,
|
|
||||||
desc = "Pick to close",
|
|
||||||
},
|
|
||||||
-- tables with just a `desc` key will be registered with which-key if it's installed
|
|
||||||
-- this is useful for naming menus
|
|
||||||
["<Leader>b"] = { desc = "Buffers" },
|
|
||||||
-- quick save
|
|
||||||
-- ["<C-s>"] = { ":w!<cr>", desc = "Save File" }, -- change description but the same command
|
|
||||||
},
|
|
||||||
t = {
|
|
||||||
-- setting a mapping to false will disable it
|
|
||||||
-- ["<esc>"] = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
-- AstroUI provides the basis for configuring the AstroNvim User Interface
|
|
||||||
-- Configuration documentation can be found with `:h astroui`
|
|
||||||
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
|
||||||
-- as this provides autocomplete and documentation while editing
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
"AstroNvim/astroui",
|
|
||||||
---@type AstroUIOpts
|
|
||||||
opts = {
|
|
||||||
-- change colorscheme
|
|
||||||
colorscheme = "catppuccin",
|
|
||||||
-- AstroUI allows you to easily modify highlight groups easily for any and all colorschemes
|
|
||||||
highlights = {
|
|
||||||
init = { -- this table overrides highlights in all themes
|
|
||||||
-- Normal = { bg = "#000000" },
|
|
||||||
},
|
|
||||||
astrotheme = { -- a table of overrides/changes when applying the astrotheme theme
|
|
||||||
-- Normal = { bg = "#000000" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- Icons can be configured throughout the interface
|
|
||||||
icons = {
|
|
||||||
-- configure the loading of the lsp in the status line
|
|
||||||
LSPLoading1 = "⠋",
|
|
||||||
LSPLoading2 = "⠙",
|
|
||||||
LSPLoading3 = "⠹",
|
|
||||||
LSPLoading4 = "⠸",
|
|
||||||
LSPLoading5 = "⠼",
|
|
||||||
LSPLoading6 = "⠴",
|
|
||||||
LSPLoading7 = "⠦",
|
|
||||||
LSPLoading8 = "⠧",
|
|
||||||
LSPLoading9 = "⠇",
|
|
||||||
LSPLoading10 = "⠏",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
-- Customize Mason plugins
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
-- use mason-lspconfig to configure LSP installations
|
|
||||||
{
|
|
||||||
"williamboman/mason-lspconfig.nvim",
|
|
||||||
-- overrides `require("mason-lspconfig").setup(...)`
|
|
||||||
opts = function(_, opts)
|
|
||||||
opts.ensure_installed = nil
|
|
||||||
opts.automatic_installation = false
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
-- use mason-null-ls to configure Formatters/Linter installation for null-ls sources
|
|
||||||
{
|
|
||||||
"jay-babu/mason-null-ls.nvim",
|
|
||||||
-- overrides `require("mason-null-ls").setup(...)`
|
|
||||||
opts = function(_, opts)
|
|
||||||
opts.ensure_installed = nil
|
|
||||||
opts.automatic_installation = false
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"jay-babu/mason-nvim-dap.nvim",
|
|
||||||
-- overrides `require("mason-nvim-dap").setup(...)`
|
|
||||||
opts = function(_, opts)
|
|
||||||
opts.ensure_installed = nil
|
|
||||||
opts.automatic_installation = false
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
-- Customize None-ls sources
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
"nvimtools/none-ls.nvim",
|
|
||||||
opts = function(_, config)
|
|
||||||
-- config variable is the default configuration table for the setup function call
|
|
||||||
local null_ls = require("null-ls")
|
|
||||||
|
|
||||||
-- Check supported formatters and linters
|
|
||||||
-- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/formatting
|
|
||||||
-- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
|
|
||||||
config.sources = {
|
|
||||||
-- Set a formatter
|
|
||||||
null_ls.builtins.formatting.clang_format,
|
|
||||||
null_ls.builtins.formatting.nixfmt,
|
|
||||||
null_ls.builtins.formatting.prettier,
|
|
||||||
null_ls.builtins.formatting.stylua,
|
|
||||||
}
|
|
||||||
return config -- return final config table
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,49 +0,0 @@
|
||||||
-- Customize Treesitter
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
opts = function(_, opts)
|
|
||||||
-- add more things to the ensure_installed table protecting against community packs modifying it
|
|
||||||
opts.ensure_installed = require("astrocore").list_insert_unique(opts.ensure_installed, {
|
|
||||||
-- Programming
|
|
||||||
"c",
|
|
||||||
"cmake",
|
|
||||||
"cpp",
|
|
||||||
"css",
|
|
||||||
"gdscript",
|
|
||||||
"godot_resource",
|
|
||||||
"html",
|
|
||||||
"hyprlang",
|
|
||||||
"javascript",
|
|
||||||
"jsdoc",
|
|
||||||
"lua",
|
|
||||||
"nim",
|
|
||||||
"nim_format_string",
|
|
||||||
"objc",
|
|
||||||
"proto",
|
|
||||||
"python",
|
|
||||||
"svelte",
|
|
||||||
"tsx",
|
|
||||||
"typescript",
|
|
||||||
"vue",
|
|
||||||
-- Scripting
|
|
||||||
"bash",
|
|
||||||
"glsl",
|
|
||||||
-- Configuring
|
|
||||||
"dockerfile",
|
|
||||||
"json",
|
|
||||||
"jsonc",
|
|
||||||
"nix",
|
|
||||||
"yaml",
|
|
||||||
-- Misc
|
|
||||||
"cuda",
|
|
||||||
"markdown",
|
|
||||||
"markdown_inline",
|
|
||||||
"query",
|
|
||||||
-- VIM
|
|
||||||
"vim",
|
|
||||||
"vimdoc",
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,93 +0,0 @@
|
||||||
-- You can also add or configure plugins by creating files in this `plugins/` folder
|
|
||||||
-- Here are some examples:
|
|
||||||
|
|
||||||
---@type LazySpec
|
|
||||||
return {
|
|
||||||
|
|
||||||
-- Discord presence
|
|
||||||
"andweeb/presence.nvim",
|
|
||||||
{
|
|
||||||
"ray-x/lsp_signature.nvim",
|
|
||||||
event = "BufRead",
|
|
||||||
config = function()
|
|
||||||
require("lsp_signature").setup()
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Customize alpha options
|
|
||||||
{
|
|
||||||
"goolord/alpha-nvim",
|
|
||||||
opts = function(_, opts)
|
|
||||||
-- customize the dashboard header
|
|
||||||
opts.section.header.val = {
|
|
||||||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣶⣶⣾⣿⣿⣿⣿⣷⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣾⣿⣿⣿⣿⣷⣶⣶⣤⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
|
||||||
"⠀⠀⠀⠀⠀⢀⣠⡴⠾⠟⠋⠉⠉⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠉⠉⠙⠛⠷⢦⣄⡀⠀⠀⠀⠀⠀",
|
|
||||||
"⠀⠀⠀⠀⠘⠋⠁⠀⠀⢀⣀⣤⣶⣖⣒⣒⡲⠶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⠶⢖⣒⣒⣲⣶⣤⣀⡀⠀⠀⠈⠙⠂⠀⠀⠀⠀",
|
|
||||||
"⠀⠀⠀⠀⠀⠀⠀⣠⢖⣫⣷⣿⣿⣿⣿⣿⣿⣶⣤⡙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⢋⣤⣾⣿⣿⣿⣿⣿⣿⣾⣝⡲⣄⠀⠀⠀⠀⠀⠀⠀",
|
|
||||||
"⠀⠀⠀⣄⣀⣠⢿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠻⢿⣿⣿⣦⣳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣟⣴⣿⣿⡿⠟⠻⢿⣿⣿⣿⣿⣿⣿⣿⡻⣄⣀⣤⠀⠀⠀",
|
|
||||||
"⠀⠀⠀⠈⠟⣿⣿⣿⡿⢻⣿⣿⣿⠃⠀⠀⠀⠀⠙⣿⣿⣿⠓⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⣿⣿⣿⠋⠀⠀⠀⠀⠘⣿⣿⣿⡟⢿⣿⣿⣟⠻⠁⠀⠀⠀",
|
|
||||||
"⠤⣤⣶⣶⣿⣿⣿⡟⠀⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⢻⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⠀⠀⠀⠀⠀⠀⣹⣿⣿⣷⠈⢻⣿⣿⣿⣶⣦⣤⠤",
|
|
||||||
"⠀⠀⠀⠀⠀⢻⣟⠀⠀⣿⣿⣿⣿⡀⠀⠀⠀⠀⢀⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢻⣿⣿⡀⠀⠀⠀⠀⢀⣿⣿⣿⣿⠀⠀⣿⡟⠀⠀⠀⠀⠀",
|
|
||||||
"⠀⠀⠀⠀⠀⠀⠻⣆⠀⢹⣿⠟⢿⣿⣦⣤⣤⣴⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⡿⢷⣤⣤⣤⣴⣿⣿⣿⣿⡇⠀⣰⠟⠀⠀⠀⠀⠀⠀",
|
|
||||||
"⠀⠀⠀⠀⠀⠀⠀⠙⠂⠀⠙⢀⣀⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠁⠀⣻⣿⣿⣿⣿⣿⣿⠏⠀⠘⠃⠀⠀⠀⠀⠀⠀⠀",
|
|
||||||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡈⠻⠿⣿⣿⣿⡿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠻⢿⣿⣿⣿⠿⠛⢁⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
|
||||||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⠛⣶⣦⣤⣤⣤⡤⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⢤⣤⣤⣤⣶⣾⠛⠓⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
|
|
||||||
}
|
|
||||||
return opts
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Adds highlighting and lsp features for embedded code in documents.
|
|
||||||
{
|
|
||||||
"jmbuhr/otter.nvim",
|
|
||||||
dependencies = {
|
|
||||||
"hrsh7th/nvim-cmp",
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Adds highlighting and custom commands for ledger files
|
|
||||||
{
|
|
||||||
"ledger/vim-ledger",
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Better UI hooks
|
|
||||||
{
|
|
||||||
"stevearc/dressing.nvim",
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Add Ollama support in-editor
|
|
||||||
{
|
|
||||||
"nomnivore/ollama.nvim",
|
|
||||||
dependencies = {
|
|
||||||
"nvim-lua/plenary.nvim",
|
|
||||||
},
|
|
||||||
|
|
||||||
-- All the user commands added by the plugin
|
|
||||||
cmd = { "Ollama", "OllamaModel", "OllamaServe", "OllamaServeStop" },
|
|
||||||
|
|
||||||
keys = {
|
|
||||||
-- Sample keybind for prompt menu. Note that the <c-u> is important for selections to work properly.
|
|
||||||
{
|
|
||||||
"<leader>oo",
|
|
||||||
":<c-u>lua require('ollama').prompt()<cr>",
|
|
||||||
desc = "ollama prompt",
|
|
||||||
mode = { "n", "v" },
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Sample keybind for direct prompting. Note that the <c-u> is important for selections to work properly.
|
|
||||||
{
|
|
||||||
"<leader>oG",
|
|
||||||
":<c-u>lua require('ollama').prompt('Generate_Code')<cr>",
|
|
||||||
desc = "ollama Generate Code",
|
|
||||||
mode = { "n", "v" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
---@type Ollama.Config
|
|
||||||
opts = {
|
|
||||||
-- your configuration overrides
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
-- This will run last in the setup process and is a good place to configure
|
|
||||||
-- things like custom filetypes. This just pure lua so anything that doesn't
|
|
||||||
-- fit in the normal config locations above can go here
|
|
||||||
|
|
||||||
-- Set up custom filetypes
|
|
||||||
vim.filetype.add {
|
|
||||||
extension = {
|
|
||||||
foo = "fooscript",
|
|
||||||
},
|
|
||||||
filename = {
|
|
||||||
["Foofile"] = "fooscript",
|
|
||||||
},
|
|
||||||
pattern = {
|
|
||||||
["~/%.config/foo/.*"] = "fooscript",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
local dap = require "dap"
|
|
||||||
|
|
||||||
dap.adapters.codelldb = {
|
|
||||||
port = "${port}",
|
|
||||||
type = "server",
|
|
||||||
executable = {
|
|
||||||
command = "codelldb",
|
|
||||||
args = { "--port", "${port}" },
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
dap.configurations.rust = {
|
|
||||||
{
|
|
||||||
name = "Launch file",
|
|
||||||
type = "codelldb",
|
|
||||||
request = "launch",
|
|
||||||
program = function() return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") end,
|
|
||||||
cwd = "${workspaceFolder}",
|
|
||||||
stopOnEntry = false,
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,53 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
openttd
|
|
||||||
];
|
|
||||||
|
|
||||||
systemd.user.services.openttd = {
|
|
||||||
Install.WantedBy = [ "default.target" ];
|
|
||||||
|
|
||||||
Unit.Description = "OpenTTD Tmux server";
|
|
||||||
|
|
||||||
Service = {
|
|
||||||
ExecStart = "${pkgs.tmux}/bin/tmux new -s OpenTTD -d '${pkgs.openttd}/bin/openttd -g /home/wizardlink/.local/share/openttd/save/hyfy.sav -D'";
|
|
||||||
ExecStop = "${pkgs.tmux}/bin/tmux kill-server";
|
|
||||||
Restart = "on-failure";
|
|
||||||
Type = "forking";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services.openttd-rcon = {
|
|
||||||
Install.WantedBy = [ "default.target" ];
|
|
||||||
|
|
||||||
Unit = {
|
|
||||||
Description = "OpenTTD RCON Password set";
|
|
||||||
After = [ "openttd.service" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
Service = {
|
|
||||||
ExecStart = "${pkgs.tmux}/bin/tmux send-keys -t OpenTTD 'rcon_pw aaaa' Enter";
|
|
||||||
Type = "oneshot";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services.openttd-save = {
|
|
||||||
Install.WantedBy = [ "default.target" ];
|
|
||||||
|
|
||||||
Unit = {
|
|
||||||
Description = "OpenTTD RCON Password set";
|
|
||||||
After = [ "openttd.service" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
Service = {
|
|
||||||
ExecStart = "${pkgs.tmux}/bin/tmux send-keys -t OpenTTD 'save hyfy' Enter";
|
|
||||||
Type = "simple";
|
|
||||||
Restart = "always";
|
|
||||||
RestartSec = "1800s";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,70 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.file = {
|
|
||||||
# Cattpuccin theme for fish shell.
|
|
||||||
".config/fish/themes/Catppuccin-Frappe.theme".source = ./theming/Catppuccin-Frappe.theme;
|
|
||||||
|
|
||||||
## Kvantum's theme configuration.
|
|
||||||
".config/Kvantum/Catppuccin-Frappe-Lavender" = {
|
|
||||||
source = "${
|
|
||||||
pkgs.catppuccin-kvantum.override {
|
|
||||||
accent = "Lavender";
|
|
||||||
variant = "Frappe";
|
|
||||||
}
|
|
||||||
}/share/Kvantum/Catppuccin-Frappe-Lavender";
|
|
||||||
};
|
|
||||||
|
|
||||||
".config/Kvantum/kvantum.kvconfig".text = ''
|
|
||||||
[General]
|
|
||||||
theme=Catppuccin-Frappe-Lavender
|
|
||||||
'';
|
|
||||||
##
|
|
||||||
|
|
||||||
## Themeing configuration for qt5 and qt6
|
|
||||||
".config/qt5ct/colors".source = ./theming/qt5ct;
|
|
||||||
|
|
||||||
".config/qt6ct/colors".source = ./theming/qt5ct; # We use the qt5ct because it's the SAME spec
|
|
||||||
##
|
|
||||||
|
|
||||||
".local/share/SpeedCrunch/color-schemes/catppuccin-frappe.json" = {
|
|
||||||
recursive = true;
|
|
||||||
source = builtins.fetchurl {
|
|
||||||
url = "https://raw.githubusercontent.com/catppuccin/speedcrunch/34f2b382de0188d2fd85f59a8a366f313fc30a71/themes/catppuccin-frappe.json";
|
|
||||||
sha256 = "sha256:0imx5a53p3ls5kddplgr7mbpbidrmzl9qiwpv7r8jjmsf8yxs0i4";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.pointerCursor = {
|
|
||||||
package = pkgs.catppuccin-cursors.frappeLavender;
|
|
||||||
name = "catppuccin-frappe-lavender-cursors";
|
|
||||||
|
|
||||||
gtk.enable = true;
|
|
||||||
x11.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Configure GTK.
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
gtk3.extraConfig = {
|
|
||||||
gtk-application-prefer-dark-theme = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk4.extraConfig = {
|
|
||||||
gtk-application-prefer-dark-theme = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
iconTheme = {
|
|
||||||
name = "Papirus-Dark";
|
|
||||||
package = pkgs.papirus-icon-theme.override { color = "violet"; };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Configure QT
|
|
||||||
qt = {
|
|
||||||
enable = true;
|
|
||||||
platformTheme.name = "qtct";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# Enable experimental features
|
|
||||||
nix.settings.experimental-features = [
|
|
||||||
"nix-command"
|
|
||||||
"flakes"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enable nh, a bundle of CLI utilities for NixOS
|
|
||||||
programs.nh = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
# Enable automatic garbage collection.
|
|
||||||
clean.enable = true;
|
|
||||||
clean.extraArgs = "--keep-since 4d --keep 3";
|
|
||||||
|
|
||||||
flake = "/home/wizardlink/.system";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Optimize storage
|
|
||||||
nix.optimise.automatic = true;
|
|
||||||
nix.settings.auto-optimise-store = true;
|
|
||||||
|
|
||||||
# Enable Hyprland's cachix
|
|
||||||
nix.settings.substituters = [ "https://hyprland.cachix.org" ];
|
|
||||||
nix.settings.trusted-public-keys = [
|
|
||||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./common.nix
|
|
||||||
./desktop.nix
|
|
||||||
./hardware.nix
|
|
||||||
./packages.nix
|
|
||||||
./services.nix
|
|
||||||
./sound.nix
|
|
||||||
./system.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,83 +0,0 @@
|
||||||
{ pkgs, hyprland, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
hyprland-pkgs = hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
environment.sessionVariables = {
|
|
||||||
# Set env for Fcitx5
|
|
||||||
QMODIFIERS = "@im=fcitx5";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable SDDM.
|
|
||||||
services.displayManager.sddm = {
|
|
||||||
enable = true;
|
|
||||||
wayland.enable = true;
|
|
||||||
theme = "catppuccin-frappe";
|
|
||||||
package = pkgs.kdePackages.sddm;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable Hyprland
|
|
||||||
programs.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
package = hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
|
||||||
portalPackage = pkgs.xdg-desktop-portal-wlr;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable XDG Desktop Portals.
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
config = {
|
|
||||||
common = {
|
|
||||||
default = [ "wlr" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Needed for home-manager
|
|
||||||
environment.pathsToLink = [
|
|
||||||
"/share/xdg-desktop-portal"
|
|
||||||
"/share/applications"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enable OpenGL.
|
|
||||||
hardware.graphics = {
|
|
||||||
enable = true;
|
|
||||||
enable32Bit = true;
|
|
||||||
|
|
||||||
package = hyprland-pkgs.mesa.drivers;
|
|
||||||
package32 = hyprland-pkgs.pkgsi686Linux.mesa.drivers;
|
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
rocm-opencl-icd # OpenGL hwa
|
|
||||||
rocm-opencl-runtime
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable Thunar and it's dependencies
|
|
||||||
programs.thunar = {
|
|
||||||
enable = true;
|
|
||||||
plugins = with pkgs.xfce; [ thunar-archive-plugin ];
|
|
||||||
};
|
|
||||||
programs.xfconf.enable = true; # For configuring
|
|
||||||
services.gvfs.enable = true; # For mounting drives, trash, etc.
|
|
||||||
services.tumbler.enable = true; # Thumbnail support
|
|
||||||
|
|
||||||
# Enable the Fcitx5 IME
|
|
||||||
i18n.inputMethod = {
|
|
||||||
enable = true;
|
|
||||||
type = "fcitx5";
|
|
||||||
|
|
||||||
fcitx5 = {
|
|
||||||
addons = with pkgs; [
|
|
||||||
fcitx5-mozc
|
|
||||||
fcitx5-gtk
|
|
||||||
fcitx5-catppuccin
|
|
||||||
];
|
|
||||||
|
|
||||||
waylandFrontend = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# Enable Bluetooth
|
|
||||||
hardware.bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
powerOnBoot = true;
|
|
||||||
};
|
|
||||||
services.blueman.enable = true;
|
|
||||||
|
|
||||||
# Enable fstrim for better ssd lifespan
|
|
||||||
services.fstrim.enable = true;
|
|
||||||
}
|
|
|
@ -1,108 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# Allow unfree packages
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
# Enable GPG.
|
|
||||||
programs.gnupg.agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSSHSupport = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable fish system-wide to integrate with nixpkgs.
|
|
||||||
programs.fish.enable = true;
|
|
||||||
|
|
||||||
# Enable Steam.
|
|
||||||
programs.steam = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
remotePlay.openFirewall = true;
|
|
||||||
localNetworkGameTransfers.openFirewall = true;
|
|
||||||
# ^ Enables so we can transfer games to other computers in the network.
|
|
||||||
|
|
||||||
# Add Proton-GE to 'compatibilitytools.d'.
|
|
||||||
extraCompatPackages = with pkgs; [ proton-ge-bin ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable and configure gamemode.
|
|
||||||
programs.gamemode = {
|
|
||||||
enable = true;
|
|
||||||
enableRenice = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable KDEConnect
|
|
||||||
programs.kdeconnect.enable = true;
|
|
||||||
|
|
||||||
# Enable Docker.
|
|
||||||
virtualisation.docker.enable = true;
|
|
||||||
|
|
||||||
# Enable virt-manager
|
|
||||||
programs.virt-manager.enable = true;
|
|
||||||
|
|
||||||
# Enable virtd and spice USB redirection
|
|
||||||
virtualisation.spiceUSBRedirection.enable = true;
|
|
||||||
virtualisation.libvirtd.enable = true;
|
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
|
||||||
# $ nix search wget
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
## Tools
|
|
||||||
# Utilities
|
|
||||||
bat
|
|
||||||
btrfs-progs
|
|
||||||
duf
|
|
||||||
fuseiso
|
|
||||||
lm_sensors
|
|
||||||
p7zip
|
|
||||||
tree
|
|
||||||
unrar
|
|
||||||
unzip
|
|
||||||
wget
|
|
||||||
zip
|
|
||||||
|
|
||||||
# File managing
|
|
||||||
sshfs
|
|
||||||
yazi
|
|
||||||
|
|
||||||
# Virtualization
|
|
||||||
docker-compose
|
|
||||||
quickemu
|
|
||||||
|
|
||||||
# Desktop
|
|
||||||
wl-clipboard
|
|
||||||
xclip
|
|
||||||
zoxide
|
|
||||||
(catppuccin-sddm.override # So SDDM finds the theme files.
|
|
||||||
{
|
|
||||||
flavor = "frappe";
|
|
||||||
font = "FantasqueSansM Nerd Font";
|
|
||||||
fontSize = "12";
|
|
||||||
background = "${./theming/sddm/Background.jpg}";
|
|
||||||
loginBackground = true;
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
# Networking
|
|
||||||
gping
|
|
||||||
nmap
|
|
||||||
|
|
||||||
# Processes
|
|
||||||
btop
|
|
||||||
killall
|
|
||||||
|
|
||||||
# Filter
|
|
||||||
fzf
|
|
||||||
ripgrep
|
|
||||||
|
|
||||||
## Libraries
|
|
||||||
libsForQt5.qt5.qtgraphicaleffects
|
|
||||||
libsForQt5.qt5.qtquickcontrols2
|
|
||||||
pkgsi686Linux.gperftools # Needed for TF2 rn :(
|
|
||||||
|
|
||||||
## Hardware specific
|
|
||||||
openrazer-daemon # Razor products back-end
|
|
||||||
polychromatic # and it's front-end
|
|
||||||
vial
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
# Enable polkit,
|
|
||||||
security.polkit.enable = true;
|
|
||||||
|
|
||||||
# install an agent to interface with it,
|
|
||||||
environment.systemPackages = with pkgs; [ polkit_gnome ];
|
|
||||||
|
|
||||||
# And enable GNOME keyring for registering keys.
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
services.postgresql = {
|
|
||||||
identMap = lib.mkIf config.services.postgresql.enable ''
|
|
||||||
# MAP_NAME SYSTEM_USER DB_USER
|
|
||||||
superuser_map root postgres
|
|
||||||
superuser_map postgres postgres
|
|
||||||
superuser_map /^(.*)$ \1
|
|
||||||
'';
|
|
||||||
|
|
||||||
authentication = lib.mkIf config.services.postgresql.enable (
|
|
||||||
lib.mkOverride 10 ''
|
|
||||||
# TYPE DATABASE USER ADDRESS METHOD MAP
|
|
||||||
local all all peer map=superuser_map
|
|
||||||
host all all 127.0.0.1/32 md5
|
|
||||||
host all all ::1/128 md5
|
|
||||||
local replication all peer map=superuser_map
|
|
||||||
host replication all 127.0.0.1/32 ident map=superuser_map
|
|
||||||
host replication all ::1/128 ident map=superuser_map
|
|
||||||
''
|
|
||||||
);
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# Enable sound with pipewire.
|
|
||||||
hardware.pulseaudio.enable = false;
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
audio.enable = true;
|
|
||||||
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
{ pkgs, config, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# Kernel
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_zen;
|
|
||||||
|
|
||||||
# Add AMD drivers.
|
|
||||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
|
||||||
|
|
||||||
boot.extraModulePackages = [
|
|
||||||
config.boot.kernelPackages.v4l2loopback
|
|
||||||
];
|
|
||||||
|
|
||||||
# Bootloader.
|
|
||||||
boot.loader = {
|
|
||||||
systemd-boot = {
|
|
||||||
enable = true;
|
|
||||||
configurationLimit = 10;
|
|
||||||
};
|
|
||||||
|
|
||||||
efi.canTouchEfiVariables = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enables zram.
|
|
||||||
zramSwap.enable = true;
|
|
||||||
|
|
||||||
# Enable networking
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
# Enable WOL on my ethernet interface.
|
|
||||||
networking.interfaces.enp5s0.wakeOnLan.enable = true;
|
|
||||||
|
|
||||||
# Define variables that will be initialized in PAM.
|
|
||||||
environment.sessionVariables = {
|
|
||||||
# Set env for Fcitx5
|
|
||||||
QMODIFIERS = "@im=fcitx5";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Set fish as the default shell for all users.
|
|
||||||
users.defaultUserShell = pkgs.fish;
|
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
services.printing.enable = true;
|
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
PasswordAuthentication = false;
|
|
||||||
PermitRootLogin = "no";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
511
nixos.nix
Normal file
511
nixos.nix
Normal file
|
@ -0,0 +1,511 @@
|
||||||
|
# Edit this configuration file to define what should be installed on
|
||||||
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
hyprland,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
hyprland-pkgs = hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
##
|
||||||
|
## NIXOS ##
|
||||||
|
##
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
# Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
# Include service configuration
|
||||||
|
./services/archi.nix
|
||||||
|
./services/authentication.nix
|
||||||
|
./services/caddy.nix
|
||||||
|
./services/forgejo.nix
|
||||||
|
./services/jellyfin.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enable experimental features
|
||||||
|
nix.settings.experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enable nh, a bundle of CLI utilities for NixOS
|
||||||
|
programs.nh = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# Enable automatic garbage collection.
|
||||||
|
clean.enable = true;
|
||||||
|
clean.extraArgs = "--keep-since 4d --keep 3";
|
||||||
|
|
||||||
|
flake = "/home/wizardlink/.system";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Optimize storage
|
||||||
|
nix.optimise.automatic = true;
|
||||||
|
nix.settings.auto-optimise-store = true;
|
||||||
|
|
||||||
|
# Enable Hyprland's cachix
|
||||||
|
nix.settings.substituters = [ "https://hyprland.cachix.org" ];
|
||||||
|
nix.settings.trusted-public-keys = [
|
||||||
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||||
|
];
|
||||||
|
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "23.05"; # Did you read the comment?
|
||||||
|
|
||||||
|
##
|
||||||
|
## SYSTEM ##
|
||||||
|
##
|
||||||
|
|
||||||
|
# Kernel
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_zen;
|
||||||
|
|
||||||
|
# Add AMD drivers.
|
||||||
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||||
|
|
||||||
|
# TODO: FIX IT BEING BEING OVERWRITTEN
|
||||||
|
boot.extraModulePackages = [
|
||||||
|
config.boot.kernelPackages.v4l2loopback
|
||||||
|
(pkgs.callPackage ./kernel/zenergy.nix { kernel = pkgs.linux_zen; })
|
||||||
|
];
|
||||||
|
|
||||||
|
# Bootloader.
|
||||||
|
boot.loader = {
|
||||||
|
systemd-boot = {
|
||||||
|
enable = true;
|
||||||
|
configurationLimit = 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Configure options for mounted volumes.
|
||||||
|
fileSystems = {
|
||||||
|
"/".options = [ "compress=zstd" ];
|
||||||
|
"/home".options = [ "compress=zstd" ];
|
||||||
|
"/nix".options = [
|
||||||
|
"compress=zstd"
|
||||||
|
"noatime"
|
||||||
|
];
|
||||||
|
"/mnt/extra".options = [ "nofail" ];
|
||||||
|
"/mnt/internal".options = [ "nofail" ];
|
||||||
|
"/mnt/media".options = [ "nofail" ];
|
||||||
|
"/mnt/ssd".options = [ "nofail" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable btrf's auto scrubbing of volumes.
|
||||||
|
services.btrfs.autoScrub = {
|
||||||
|
enable = true;
|
||||||
|
interval = "weekly";
|
||||||
|
fileSystems = [ "/" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enables zram.
|
||||||
|
zramSwap.enable = true;
|
||||||
|
|
||||||
|
networking.hostName = "wizdesk"; # Define your hostname.
|
||||||
|
|
||||||
|
# Enable networking
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
# Enable WOL on my ethernet interface.
|
||||||
|
networking.interfaces.enp5s0.wakeOnLan.enable = true;
|
||||||
|
|
||||||
|
# Open ports in the firewall.
|
||||||
|
networking.firewall = {
|
||||||
|
allowedTCPPorts = [
|
||||||
|
443 # SSL
|
||||||
|
6567 # Mindustry
|
||||||
|
80 # HTTP
|
||||||
|
3979 # OpenTTD
|
||||||
|
];
|
||||||
|
|
||||||
|
allowedUDPPorts = [
|
||||||
|
2626 # Dolphin emulator
|
||||||
|
27015 # Source games
|
||||||
|
28910 # Heretic II
|
||||||
|
6567 # Mindustry
|
||||||
|
8211 # Palworld
|
||||||
|
3979 # OpenTTD
|
||||||
|
];
|
||||||
|
|
||||||
|
allowedTCPPortRanges = [
|
||||||
|
{
|
||||||
|
from = 1714;
|
||||||
|
to = 1764;
|
||||||
|
} # KDEConnect
|
||||||
|
];
|
||||||
|
allowedUDPPortRanges = [
|
||||||
|
{
|
||||||
|
from = 1714;
|
||||||
|
to = 1764;
|
||||||
|
} # KDEConnect
|
||||||
|
];
|
||||||
|
};
|
||||||
|
# Or disable the firewall altogether.
|
||||||
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
|
# Define system-wide variables.
|
||||||
|
environment.variables = { };
|
||||||
|
|
||||||
|
# Define variables that will be initialized in PAM.
|
||||||
|
environment.sessionVariables = {
|
||||||
|
# Set env for Fcitx5
|
||||||
|
QMODIFIERS = "@im=fcitx5";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Set fish as the default shell for all users.
|
||||||
|
users.defaultUserShell = pkgs.fish;
|
||||||
|
|
||||||
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
|
users.users.wizardlink = {
|
||||||
|
createHome = true;
|
||||||
|
description = "Alexandre Cavalheiro";
|
||||||
|
extraGroups = [
|
||||||
|
"docker"
|
||||||
|
"gamemode"
|
||||||
|
"libvirtd"
|
||||||
|
"networkmanager"
|
||||||
|
"openrazer"
|
||||||
|
"postgresql"
|
||||||
|
"wheel"
|
||||||
|
];
|
||||||
|
|
||||||
|
initialPassword = "wizardlink";
|
||||||
|
isNormalUser = true;
|
||||||
|
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDdGOyRbu6IOw9yqotxE6m7wCif7oP/2D0tlREa5Q6uo Alexandre Cavalheiro S. Tiago da Silva <contact@thewizard.link>"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIISfCUsZrnCMZapdrvkUCrdRiX+1xuZBdGrynNRzDI2v" # SpaceEEC
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPInBFp7zBLhFluoww65CZzcnMdhndTawBv8QYJ5s/Xt david.alejandro.rubio@gmail.com" # Kodehawa
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Set your time zone.
|
||||||
|
time.timeZone = "America/Sao_Paulo";
|
||||||
|
|
||||||
|
# Select internationalisation properties.
|
||||||
|
i18n = {
|
||||||
|
defaultLocale = "en_US.UTF-8";
|
||||||
|
supportedLocales = [
|
||||||
|
"C.UTF-8/UTF-8"
|
||||||
|
"en_GB.UTF-8/UTF-8"
|
||||||
|
"en_US.UTF-8/UTF-8"
|
||||||
|
"ja_JP.UTF-8/UTF-8"
|
||||||
|
"pt_BR.UTF-8/UTF-8"
|
||||||
|
];
|
||||||
|
|
||||||
|
extraLocaleSettings = {
|
||||||
|
LANGUAGE = "en_US.UTF-8";
|
||||||
|
LC_ADDRESS = "en_US.UTF-8";
|
||||||
|
LC_ALL = "en_US.UTF-8";
|
||||||
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||||
|
LC_MEASUREMENT = "pt_BR.UTF-8";
|
||||||
|
LC_MONETARY = "en_US.UTF-8";
|
||||||
|
LC_NAME = "en_US.UTF-8";
|
||||||
|
LC_NUMERIC = "pt_BR.UTF-8";
|
||||||
|
LC_PAPER = "pt_BR.UTF-8";
|
||||||
|
LC_TELEPHONE = "pt_BR.UTF-8";
|
||||||
|
LC_TIME = "en_GB.UTF-8";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable CUPS to print documents.
|
||||||
|
services.printing.enable = true;
|
||||||
|
|
||||||
|
# Enable the OpenSSH daemon.
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
PasswordAuthentication = false;
|
||||||
|
PermitRootLogin = "no";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
##
|
||||||
|
## HARDWARE ##
|
||||||
|
##
|
||||||
|
|
||||||
|
# Enable Bluetooth
|
||||||
|
hardware.bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
powerOnBoot = true;
|
||||||
|
};
|
||||||
|
services.blueman.enable = true;
|
||||||
|
|
||||||
|
# Enable openrazer for managing Razer products' configuration
|
||||||
|
hardware.openrazer = {
|
||||||
|
enable = true;
|
||||||
|
users = [ "wizardlink" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable QMK support.
|
||||||
|
# hardware.keyboard.qmk.enable = true;
|
||||||
|
# FIXME: Causing issues with xpadneo :(
|
||||||
|
|
||||||
|
# enable a better driver for wireless xbox controllers.
|
||||||
|
hardware.xpadneo.enable = true;
|
||||||
|
|
||||||
|
# Enable fstrim for better ssd lifespan
|
||||||
|
services.fstrim.enable = true;
|
||||||
|
|
||||||
|
##
|
||||||
|
## DESKTOP ##
|
||||||
|
##
|
||||||
|
|
||||||
|
# Enable SDDM.
|
||||||
|
services.displayManager.sddm = {
|
||||||
|
enable = true;
|
||||||
|
wayland.enable = true;
|
||||||
|
theme = "catppuccin-frappe";
|
||||||
|
package = pkgs.kdePackages.sddm;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable Hyprland
|
||||||
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
package = hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
|
portalPackage = pkgs.xdg-desktop-portal-wlr;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable XDG Desktop Portals.
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
config = {
|
||||||
|
common = {
|
||||||
|
default = [ "wlr" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Needed for home-manager
|
||||||
|
environment.pathsToLink = [
|
||||||
|
"/share/xdg-desktop-portal"
|
||||||
|
"/share/applications"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enable OpenGL.
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
enable32Bit = true;
|
||||||
|
|
||||||
|
package = hyprland-pkgs.mesa.drivers;
|
||||||
|
package32 = hyprland-pkgs.pkgsi686Linux.mesa.drivers;
|
||||||
|
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
rocm-opencl-icd # OpenGL hwa
|
||||||
|
rocm-opencl-runtime
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable Thunar and it's dependencies
|
||||||
|
programs.thunar = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs.xfce; [ thunar-archive-plugin ];
|
||||||
|
};
|
||||||
|
programs.xfconf.enable = true; # For configuring
|
||||||
|
services.gvfs.enable = true; # For mounting drives, trash, etc.
|
||||||
|
services.tumbler.enable = true; # Thumbnail support
|
||||||
|
|
||||||
|
# Enable the Fcitx5 IME
|
||||||
|
i18n.inputMethod = {
|
||||||
|
enable = true;
|
||||||
|
type = "fcitx5";
|
||||||
|
|
||||||
|
fcitx5 = {
|
||||||
|
addons = with pkgs; [
|
||||||
|
fcitx5-mozc
|
||||||
|
fcitx5-gtk
|
||||||
|
fcitx5-catppuccin
|
||||||
|
];
|
||||||
|
|
||||||
|
waylandFrontend = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
##
|
||||||
|
## SOUND #
|
||||||
|
##
|
||||||
|
|
||||||
|
# Enable sound with pipewire.
|
||||||
|
hardware.pulseaudio.enable = false;
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
audio.enable = true;
|
||||||
|
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
|
||||||
|
pulse.enable = true;
|
||||||
|
|
||||||
|
#jack.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
##
|
||||||
|
## PACKAGES ##
|
||||||
|
##
|
||||||
|
|
||||||
|
# Allow unfree packages
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
# Enable GPG.
|
||||||
|
programs.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable fish system-wide to integrate with nixpkgs.
|
||||||
|
programs.fish.enable = true;
|
||||||
|
|
||||||
|
# Enable Steam.
|
||||||
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
remotePlay.openFirewall = true;
|
||||||
|
localNetworkGameTransfers.openFirewall = true;
|
||||||
|
# ^ Enables so we can transfer games to other computers in the network.
|
||||||
|
|
||||||
|
# Add Proton-GE to 'compatibilitytools.d'.
|
||||||
|
extraCompatPackages = with pkgs; [ proton-ge-bin ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable and configure gamemode.
|
||||||
|
programs.gamemode = {
|
||||||
|
enable = true;
|
||||||
|
enableRenice = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable KDEConnect
|
||||||
|
programs.kdeconnect.enable = true;
|
||||||
|
|
||||||
|
# Enable Docker.
|
||||||
|
virtualisation.docker.enable = true;
|
||||||
|
|
||||||
|
# Enable virt-manager
|
||||||
|
virtualisation.libvirtd.enable = true;
|
||||||
|
programs.virt-manager.enable = true;
|
||||||
|
virtualisation.spiceUSBRedirection.enable = true;
|
||||||
|
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
## Tools
|
||||||
|
# Utilities
|
||||||
|
bat
|
||||||
|
btrfs-progs
|
||||||
|
duf
|
||||||
|
fuseiso
|
||||||
|
lm_sensors
|
||||||
|
p7zip
|
||||||
|
tree
|
||||||
|
unrar
|
||||||
|
unzip
|
||||||
|
wget
|
||||||
|
zip
|
||||||
|
|
||||||
|
# File managing
|
||||||
|
sshfs
|
||||||
|
yazi
|
||||||
|
|
||||||
|
# Virtualization
|
||||||
|
docker-compose
|
||||||
|
quickemu
|
||||||
|
|
||||||
|
# Desktop
|
||||||
|
wl-clipboard
|
||||||
|
xclip
|
||||||
|
zoxide
|
||||||
|
(catppuccin-sddm.override # So SDDM finds the theme files.
|
||||||
|
{
|
||||||
|
flavor = "frappe";
|
||||||
|
font = "FantasqueSansM Nerd Font";
|
||||||
|
fontSize = "12";
|
||||||
|
background = "${./theming/sddm/Background.jpg}";
|
||||||
|
loginBackground = true;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
# Networking
|
||||||
|
gping
|
||||||
|
nmap
|
||||||
|
|
||||||
|
# Processes
|
||||||
|
btop
|
||||||
|
killall
|
||||||
|
|
||||||
|
# Filter
|
||||||
|
fzf
|
||||||
|
ripgrep
|
||||||
|
|
||||||
|
## Libraries
|
||||||
|
libsForQt5.qt5.qtgraphicaleffects
|
||||||
|
libsForQt5.qt5.qtquickcontrols2
|
||||||
|
pkgsi686Linux.gperftools # Needed for TF2 rn :(
|
||||||
|
|
||||||
|
## Hardware specific
|
||||||
|
openrazer-daemon # Razor products back-end
|
||||||
|
polychromatic # and it's front-end
|
||||||
|
via
|
||||||
|
];
|
||||||
|
|
||||||
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
|
# started in user sessions.
|
||||||
|
# programs.mtr.enable = true;
|
||||||
|
# programs.gnupg.agent = {
|
||||||
|
# enable = true;
|
||||||
|
# enableSSHSupport = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
##
|
||||||
|
## SERVICES #
|
||||||
|
##
|
||||||
|
|
||||||
|
# Enable flatpak
|
||||||
|
services.flatpak.enable = true;
|
||||||
|
|
||||||
|
# Enables VIA
|
||||||
|
# services.udev.packages = [ pkgs.via ];
|
||||||
|
# FIXME: Causing issues with xpadneo :(
|
||||||
|
|
||||||
|
# Enable and configure PostgreSQL.
|
||||||
|
services.postgresql = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
identMap = ''
|
||||||
|
# MAP_NAME SYSTEM_USER DB_USER
|
||||||
|
superuser_map root postgres
|
||||||
|
superuser_map postgres postgres
|
||||||
|
superuser_map /^(.*)$ \1
|
||||||
|
'';
|
||||||
|
|
||||||
|
authentication = pkgs.lib.mkOverride 10 ''
|
||||||
|
# TYPE DATABASE USER ADDRESS METHOD MAP
|
||||||
|
local all all peer map=superuser_map
|
||||||
|
host all all 127.0.0.1/32 md5
|
||||||
|
host all all ::1/128 md5
|
||||||
|
local replication all peer map=superuser_map
|
||||||
|
host replication all 127.0.0.1/32 ident map=superuser_map
|
||||||
|
host replication all ::1/128 ident map=superuser_map
|
||||||
|
'';
|
||||||
|
|
||||||
|
initialScript = pkgs.writeText "backend-initScript" ''
|
||||||
|
CREATE ROLE wizardlink WITH LOGIN SUPERUSER PASSWORD 'wizardlink' CREATEDB CREATEROLE REPLICATION;
|
||||||
|
CREATE DATABASE wizardlink;
|
||||||
|
GRANT ALL PRIVILEGES ON DATABASE wizardlink TO wizardlink;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
21
services/forgejo.nix
Normal file
21
services/forgejo.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
services.forgejo = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
lfs.enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
server = {
|
||||||
|
HTTP_PORT = 3788;
|
||||||
|
LANDING_PAGE = "explore";
|
||||||
|
ROOT_URL = "https://git.thewizard.link";
|
||||||
|
};
|
||||||
|
|
||||||
|
service = {
|
||||||
|
DISABLE_REGISTRATION = true;
|
||||||
|
ENABLE_REVERSE_PROXY_AUTHENTICATION = true;
|
||||||
|
ENABLE_REVERSE_PROXY_AUTHENTICATION_API = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
23
services/openttd.nix
Normal file
23
services/openttd.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
openttd
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.user.services.openttd = {
|
||||||
|
Install.WantedBy = [ "default.target" ];
|
||||||
|
|
||||||
|
Unit.Description = "OpenTTD Tmux server";
|
||||||
|
|
||||||
|
Service = {
|
||||||
|
ExecStart = "${pkgs.tmux}/bin/tmux new -s OpenTTD -d '${pkgs.openttd}/bin/openttd -D'";
|
||||||
|
ExecStop = "${pkgs.tmux}/bin/tmux kill-server";
|
||||||
|
Restart = "on-failure";
|
||||||
|
Type = "forking";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,31 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
#
|
|
||||||
## HOME CONFIGURATION #
|
|
||||||
#
|
|
||||||
|
|
||||||
# Import configurations for better modularity.
|
|
||||||
imports = [
|
|
||||||
../../modules/home-manager
|
|
||||||
../../modules/home-manager/services.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
|
||||||
# manage.
|
|
||||||
home.username = "wizardlink";
|
|
||||||
home.homeDirectory = "/home/wizardlink";
|
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
|
||||||
# introduces backwards incompatible changes.
|
|
||||||
#
|
|
||||||
# You should not change this value, even if you update Home Manager. If you do
|
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
|
||||||
# release notes.
|
|
||||||
home.stateVersion = "23.05"; # Please read the comment before changing.
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# Enable Zenergy
|
|
||||||
boot.extraModulePackages = [
|
|
||||||
(pkgs.callPackage ../kernel/zenergy.nix { kernel = pkgs.linux_zen; })
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enable openrazer for managing Razer products' configuration
|
|
||||||
hardware.openrazer = {
|
|
||||||
enable = true;
|
|
||||||
users = [ "wizardlink" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.udev = {
|
|
||||||
# Vial udev rule for Monsgeek M1
|
|
||||||
extraRules = ''
|
|
||||||
# Monsgeek M1
|
|
||||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="fffe", ATTRS{idProduct}=="0005", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
|
||||||
'';
|
|
||||||
|
|
||||||
# WB32 DFU rules - needed for flashing
|
|
||||||
packages = [ (pkgs.callPackage ./services/udev/wb32dfu.nix { }) ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# enable a better driver for wireless xbox controllers.
|
|
||||||
hardware.xpadneo.enable = true;
|
|
||||||
}
|
|
|
@ -1,125 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./hardware-configuration.nix
|
|
||||||
./hardware.nix
|
|
||||||
./services.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
|
||||||
# settings for stateful data, like file locations and database versions
|
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
|
||||||
# this value at the release version of the first install of this system.
|
|
||||||
# Before changing this value read the documentation for this option
|
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
|
||||||
system.stateVersion = "23.05";
|
|
||||||
|
|
||||||
# Configure options for mounted volumes.
|
|
||||||
fileSystems = {
|
|
||||||
"/".options = [ "compress=zstd" ];
|
|
||||||
"/home".options = [ "compress=zstd" ];
|
|
||||||
"/nix".options = [
|
|
||||||
"compress=zstd"
|
|
||||||
"noatime"
|
|
||||||
];
|
|
||||||
"/mnt/extra".options = [ "nofail" ];
|
|
||||||
"/mnt/internal".options = [ "nofail" ];
|
|
||||||
"/mnt/media".options = [ "nofail" ];
|
|
||||||
"/mnt/ssd".options = [ "nofail" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable btrf's auto scrubbing of volumes.
|
|
||||||
services.btrfs.autoScrub = {
|
|
||||||
enable = true;
|
|
||||||
interval = "weekly";
|
|
||||||
fileSystems = [ "/" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostName = "wizdesk"; # Define your hostname.
|
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
networking.firewall = {
|
|
||||||
allowedTCPPorts = [
|
|
||||||
443 # SSL
|
|
||||||
6567 # Mindustry
|
|
||||||
80 # HTTP
|
|
||||||
3979 # OpenTTD
|
|
||||||
];
|
|
||||||
|
|
||||||
allowedUDPPorts = [
|
|
||||||
2626 # Dolphin emulator
|
|
||||||
27015 # Source games
|
|
||||||
28910 # Heretic II
|
|
||||||
6567 # Mindustry
|
|
||||||
8211 # Palworld
|
|
||||||
3979 # OpenTTD
|
|
||||||
];
|
|
||||||
|
|
||||||
allowedTCPPortRanges = [
|
|
||||||
{
|
|
||||||
from = 1714;
|
|
||||||
to = 1764;
|
|
||||||
} # KDEConnect
|
|
||||||
];
|
|
||||||
allowedUDPPortRanges = [
|
|
||||||
{
|
|
||||||
from = 1714;
|
|
||||||
to = 1764;
|
|
||||||
} # KDEConnect
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
||||||
users.users.wizardlink = {
|
|
||||||
createHome = true;
|
|
||||||
description = "Alexandre Cavalheiro";
|
|
||||||
extraGroups = [
|
|
||||||
"docker"
|
|
||||||
"gamemode"
|
|
||||||
"libvirtd"
|
|
||||||
"networkmanager"
|
|
||||||
"openrazer"
|
|
||||||
"postgresql"
|
|
||||||
"wheel"
|
|
||||||
];
|
|
||||||
|
|
||||||
initialPassword = "wizardlink";
|
|
||||||
isNormalUser = true;
|
|
||||||
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDdGOyRbu6IOw9yqotxE6m7wCif7oP/2D0tlREa5Q6uo Alexandre Cavalheiro S. Tiago da Silva <contact@thewizard.link>"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIISfCUsZrnCMZapdrvkUCrdRiX+1xuZBdGrynNRzDI2v" # SpaceEEC
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPInBFp7zBLhFluoww65CZzcnMdhndTawBv8QYJ5s/Xt david.alejandro.rubio@gmail.com" # Kodehawa
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "America/Sao_Paulo";
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
i18n = {
|
|
||||||
defaultLocale = "en_US.UTF-8";
|
|
||||||
supportedLocales = [
|
|
||||||
"C.UTF-8/UTF-8"
|
|
||||||
"en_GB.UTF-8/UTF-8"
|
|
||||||
"en_US.UTF-8/UTF-8"
|
|
||||||
"ja_JP.UTF-8/UTF-8"
|
|
||||||
"pt_BR.UTF-8/UTF-8"
|
|
||||||
];
|
|
||||||
|
|
||||||
extraLocaleSettings = {
|
|
||||||
LANGUAGE = "en_US.UTF-8";
|
|
||||||
LC_ADDRESS = "en_US.UTF-8";
|
|
||||||
LC_ALL = "en_US.UTF-8";
|
|
||||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
|
||||||
LC_MEASUREMENT = "pt_BR.UTF-8";
|
|
||||||
LC_MONETARY = "en_US.UTF-8";
|
|
||||||
LC_NAME = "en_US.UTF-8";
|
|
||||||
LC_NUMERIC = "pt_BR.UTF-8";
|
|
||||||
LC_PAPER = "pt_BR.UTF-8";
|
|
||||||
LC_TELEPHONE = "pt_BR.UTF-8";
|
|
||||||
LC_TIME = "en_GB.UTF-8";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./services/archi.nix
|
|
||||||
./services/caddy.nix
|
|
||||||
./services/forgejo.nix
|
|
||||||
./services/jellyfin.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
services.postgresql = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
initialScript = pkgs.writeText "backend-initScript" ''
|
|
||||||
CREATE ROLE wizardlink WITH LOGIN SUPERUSER PASSWORD 'wizardlink' CREATEDB CREATEROLE REPLICATION;
|
|
||||||
CREATE DATABASE wizardlink;
|
|
||||||
GRANT ALL PRIVILEGES ON DATABASE wizardlink TO wizardlink;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
services.forgejo = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
lfs.enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
server = {
|
|
||||||
HTTP_PORT = 3788;
|
|
||||||
LANDING_PAGE = "explore";
|
|
||||||
ROOT_URL = "https://git.thewizard.link";
|
|
||||||
};
|
|
||||||
|
|
||||||
ui = {
|
|
||||||
# HACK: Unfortunately we need to manually put files in /var/lib/forgejo/custom/public/assets/css
|
|
||||||
# so this will break in a new system.
|
|
||||||
DEFAULT_THEME = "catppuccin-frappe-lavender";
|
|
||||||
THEMES = "forgejo-auto,forgejo-light,forgejo-dark,gitea-auto,gitea-light,gitea-dark,forgejo-auto-deuteranopia-protanopia,forgejo-light-deuteranopia-protanopia,forgejo-dark-deuteranopia-protanopia,forgejo-auto-tritanopia,forgejo-light-tritanopia,forgejo-dark-tritanopia,catppuccin-latte-rosewater,catppuccin-latte-flamingo,catppuccin-latte-pink,catppuccin-latte-mauve,catppuccin-latte-red,catppuccin-latte-maroon,catppuccin-latte-peach,catppuccin-latte-yellow,catppuccin-latte-green,catppuccin-latte-teal,catppuccin-latte-sky,catppuccin-latte-sapphire,catppuccin-latte-blue,catppuccin-latte-lavender,catppuccin-frappe-rosewater,catppuccin-frappe-flamingo,catppuccin-frappe-pink,catppuccin-frappe-mauve,catppuccin-frappe-red,catppuccin-frappe-maroon,catppuccin-frappe-peach,catppuccin-frappe-yellow,catppuccin-frappe-green,catppuccin-frappe-teal,catppuccin-frappe-sky,catppuccin-frappe-sapphire,catppuccin-frappe-blue,catppuccin-frappe-lavender,catppuccin-macchiato-rosewater,catppuccin-macchiato-flamingo,catppuccin-macchiato-pink,catppuccin-macchiato-mauve,catppuccin-macchiato-red,catppuccin-macchiato-maroon,catppuccin-macchiato-peach,catppuccin-macchiato-yellow,catppuccin-macchiato-green,catppuccin-macchiato-teal,catppuccin-macchiato-sky,catppuccin-macchiato-sapphire,catppuccin-macchiato-blue,catppuccin-macchiato-lavender,catppuccin-mocha-rosewater,catppuccin-mocha-flamingo,catppuccin-mocha-pink,catppuccin-mocha-mauve,catppuccin-mocha-red,catppuccin-mocha-maroon,catppuccin-mocha-peach,catppuccin-mocha-yellow,catppuccin-mocha-green,catppuccin-mocha-teal,catppuccin-mocha-sky,catppuccin-mocha-sapphire,catppuccin-mocha-blue,catppuccin-mocha-lavender";
|
|
||||||
};
|
|
||||||
|
|
||||||
service = {
|
|
||||||
DISABLE_REGISTRATION = true;
|
|
||||||
ENABLE_REVERSE_PROXY_AUTHENTICATION = true;
|
|
||||||
ENABLE_REVERSE_PROXY_AUTHENTICATION_API = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
{
|
|
||||||
stdenv,
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
pname = "wb32dfu-udev-rules";
|
|
||||||
version = "0-unstable-2024-09-15";
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
dontBuild = true;
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
|
|
||||||
install -D wb32dfu.rules $out/lib/udev/rules.d/50-wb32dfu.rules
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,2 +0,0 @@
|
||||||
# WB32 DFU
|
|
||||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess"
|
|
|
@ -1,11 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# Enable Zenergy
|
|
||||||
boot.extraModulePackages = [
|
|
||||||
(pkgs.callPackage ../kernel/zenergy.nix { kernel = pkgs.linux_zen; })
|
|
||||||
];
|
|
||||||
|
|
||||||
# enable a better driver for wireless xbox controllers.
|
|
||||||
hardware.xpadneo.enable = true;
|
|
||||||
}
|
|
|
@ -1,78 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./hardware.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
networking.hostName = "wizlap"; # Define your hostname.
|
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
networking.firewall = {
|
|
||||||
allowedTCPPortRanges = [
|
|
||||||
{
|
|
||||||
from = 1714;
|
|
||||||
to = 1764;
|
|
||||||
} # KDEConnect
|
|
||||||
];
|
|
||||||
allowedUDPPortRanges = [
|
|
||||||
{
|
|
||||||
from = 1714;
|
|
||||||
to = 1764;
|
|
||||||
} # KDEConnect
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
||||||
users.users.wizardlink = {
|
|
||||||
createHome = true;
|
|
||||||
description = "Alexandre Cavalheiro";
|
|
||||||
extraGroups = [
|
|
||||||
"docker"
|
|
||||||
"gamemode"
|
|
||||||
"libvirtd"
|
|
||||||
"networkmanager"
|
|
||||||
"openrazer"
|
|
||||||
"postgresql"
|
|
||||||
"wheel"
|
|
||||||
];
|
|
||||||
|
|
||||||
initialPassword = "wizardlink";
|
|
||||||
isNormalUser = true;
|
|
||||||
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDdGOyRbu6IOw9yqotxE6m7wCif7oP/2D0tlREa5Q6uo Alexandre Cavalheiro S. Tiago da Silva <contact@thewizard.link>"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIISfCUsZrnCMZapdrvkUCrdRiX+1xuZBdGrynNRzDI2v" # SpaceEEC
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPInBFp7zBLhFluoww65CZzcnMdhndTawBv8QYJ5s/Xt david.alejandro.rubio@gmail.com" # Kodehawa
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "America/Sao_Paulo";
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
i18n = {
|
|
||||||
defaultLocale = "en_US.UTF-8";
|
|
||||||
supportedLocales = [
|
|
||||||
"C.UTF-8/UTF-8"
|
|
||||||
"en_GB.UTF-8/UTF-8"
|
|
||||||
"en_US.UTF-8/UTF-8"
|
|
||||||
"ja_JP.UTF-8/UTF-8"
|
|
||||||
"pt_BR.UTF-8/UTF-8"
|
|
||||||
];
|
|
||||||
|
|
||||||
extraLocaleSettings = {
|
|
||||||
LANGUAGE = "en_US.UTF-8";
|
|
||||||
LC_ADDRESS = "en_US.UTF-8";
|
|
||||||
LC_ALL = "en_US.UTF-8";
|
|
||||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
|
||||||
LC_MEASUREMENT = "pt_BR.UTF-8";
|
|
||||||
LC_MONETARY = "en_US.UTF-8";
|
|
||||||
LC_NAME = "en_US.UTF-8";
|
|
||||||
LC_NUMERIC = "pt_BR.UTF-8";
|
|
||||||
LC_PAPER = "pt_BR.UTF-8";
|
|
||||||
LC_TELEPHONE = "pt_BR.UTF-8";
|
|
||||||
LC_TIME = "en_GB.UTF-8";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
Before Width: | Height: | Size: 4.8 MiB After Width: | Height: | Size: 4.8 MiB |
Loading…
Add table
Add a link
Reference in a new issue