Compare commits
No commits in common. "53a2609204c52b8c520d32e61390e6004d3d73cd" and "77663c229f79ebbb8912b2536e6068c6146abe50" have entirely different histories.
53a2609204
...
77663c229f
156
flake.lock
156
flake.lock
|
@ -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:
|
|
||||||
|
|
||||||
![image](./docs/example_1.png)
|
|
||||||
![image](./docs/example_2.png)
|
|
||||||
![image](./docs/example_3.png)
|
|
||||||
|
|
||||||
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…
Reference in a new issue