mirror of
https://github.com/materusPL/nixos-config
synced 2026-07-02 12:46:42 +00:00
Init commit
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
{ config, pkgs, lib, materusFlake, inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./nixpkgs.nix
|
||||
./packages
|
||||
];
|
||||
config._module.args.materusPkgs = (import inputs.nixerus { inherit pkgs; }) //
|
||||
(if pkgs.system == "x86_64-linux" then { i686Linux = import inputs.nixerus { pkgs = pkgs.pkgsi686Linux; }; } else { });
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{ config, pkgs, inputs, lib,... }:
|
||||
let
|
||||
mkBoolOpt = default: description: lib.mkOption {
|
||||
inherit default;
|
||||
inherit description;
|
||||
type = lib.types.bool;
|
||||
example = true;
|
||||
};
|
||||
|
||||
cfg = config.materus.profile.nixpkgs;
|
||||
in
|
||||
{
|
||||
options.materus.profile.nixpkgs.enable = mkBoolOpt false "Enable materus nixpkgs config";
|
||||
options.materus.profile.nixpkgs.enableOverlays = mkBoolOpt (cfg.enable) "Enable materus overlays";
|
||||
|
||||
config.nixpkgs.config = lib.mkIf cfg.enable{
|
||||
allowUnfree = lib.mkDefault true;
|
||||
joypixels.acceptLicense = lib.mkDefault true;
|
||||
#firefox.enablePlasmaBrowserIntegration = lib.mkDefault config.services.xserver.desktopManager.plasma5.enable;
|
||||
};
|
||||
#config.nixpkgs.overlays = lib.mkIf cfg.enableOverlays [inputs.emacs-overlay.overlay];
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{ config, pkgs, lib, inputs, materusFlake, materusPkgs, ... }:
|
||||
with materusPkgs.lib;
|
||||
{
|
||||
imports = [
|
||||
./fonts.nix
|
||||
];
|
||||
|
||||
#Single Packages
|
||||
#options.materus.profile.packages.home-manager = mkPrivateVar inputs.home-manager.packages.${pkgs.system}.home-manager;
|
||||
options.materus.profile.packages.firefox = mkPrivateVar pkgs.firefox;
|
||||
|
||||
#Package Lists
|
||||
options.materus.profile.packages.list.nixRelated = mkPrivateVar (with pkgs; [
|
||||
nix-prefetch
|
||||
nix-prefetch-scripts
|
||||
nix-prefetch-github
|
||||
nix-prefetch-docker
|
||||
nixfmt
|
||||
nix-top
|
||||
nix-tree
|
||||
nix-diff
|
||||
nix-ld
|
||||
rnix-hashes
|
||||
rnix-lsp
|
||||
nixpkgs-review
|
||||
]);
|
||||
|
||||
options.materus.profile.packages.list.desktopApps = mkPrivateVar (with pkgs; [
|
||||
barrier
|
||||
(discord.override { nss = nss_latest; withOpenASAR = true; withTTS = true;})
|
||||
tdesktop
|
||||
mpv
|
||||
ani-cli
|
||||
(pkgs.obsidian)
|
||||
spotify
|
||||
thunderbird
|
||||
keepassxc
|
||||
(aspellWithDicts (ds: with ds; [ en en-computers en-science pl ]))
|
||||
onlyoffice-bin
|
||||
]);
|
||||
|
||||
options.materus.profile.packages.list.terminalApps = mkPrivateVar (with pkgs; [
|
||||
neofetch
|
||||
ripgrep
|
||||
fd
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
defaultFonts = [
|
||||
pkgs.dejavu_fonts
|
||||
pkgs.freefont_ttf
|
||||
pkgs.gyre-fonts
|
||||
pkgs.liberation_ttf
|
||||
pkgs.unifont
|
||||
];
|
||||
fonts = [
|
||||
pkgs.noto-fonts
|
||||
pkgs.noto-fonts-extra
|
||||
pkgs.noto-fonts-emoji
|
||||
pkgs.noto-fonts-cjk-sans
|
||||
pkgs.noto-fonts-cjk-serif
|
||||
pkgs.wqy_zenhei
|
||||
pkgs.corefonts
|
||||
|
||||
] ++ defaultFonts;
|
||||
|
||||
moreFonts = [
|
||||
pkgs.ubuntu_font_family
|
||||
pkgs.monocraft
|
||||
pkgs.hack-font
|
||||
(pkgs.nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" "Meslo" "ProFont" ]; })
|
||||
];
|
||||
in
|
||||
{
|
||||
|
||||
options.materus.profile.packages.list.fonts = lib.mkOption { default = fonts; readOnly = true; visible = false; };
|
||||
options.materus.profile.packages.list.moreFonts = lib.mkOption { default = moreFonts; readOnly = true; visible = false; };
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
osProfile = {
|
||||
imports = [
|
||||
./os
|
||||
./common
|
||||
];
|
||||
};
|
||||
|
||||
homeProfile = {
|
||||
imports = [
|
||||
./common
|
||||
./home
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{ config, lib, pkgs, materusPkgs, ... }:
|
||||
let
|
||||
cfg = config.materus.profile.browser;
|
||||
in
|
||||
{
|
||||
|
||||
options= let mkBoolOpt = materusPkgs.lib.mkBoolOpt; in{
|
||||
materus.profile.browser.firefox.enable = mkBoolOpt config.materus.profile.enableDesktop "Enable Firefox with materus cfg";
|
||||
materus.profile.browser.vivaldi.enable = mkBoolOpt config.materus.profile.enableDesktop "Enable Vivaldi with materus cfg";
|
||||
materus.profile.browser.brave.enable = mkBoolOpt false "Enable Brave with materus cfg";
|
||||
|
||||
};
|
||||
#TODO: Make some config
|
||||
config.home.packages = [
|
||||
(lib.mkIf cfg.firefox.enable config.materus.profile.packages.firefox)
|
||||
(lib.mkIf cfg.vivaldi.enable pkgs.vivaldi)
|
||||
(lib.mkIf cfg.brave.enable pkgs.brave)
|
||||
];
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
{ config, lib, pkgs, materusPkgs, ... }:
|
||||
let
|
||||
packages = cfg.packages;
|
||||
cfg = config.materus.profile;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./fonts.nix
|
||||
./browser.nix
|
||||
|
||||
./shell
|
||||
./editor
|
||||
|
||||
];
|
||||
options.materus.profile.enableDesktop = materusPkgs.lib.mkBoolOpt false "Enable settings for desktop";
|
||||
options.materus.profile.enableTerminal = materusPkgs.lib.mkBoolOpt true "Enable settings for terminal";
|
||||
options.materus.profile.enableTerminalExtra = materusPkgs.lib.mkBoolOpt false "Enable extra settings for terminal";
|
||||
options.materus.profile.enableNixDevel = materusPkgs.lib.mkBoolOpt false "Enable settings for nix devel";
|
||||
|
||||
config =
|
||||
{
|
||||
|
||||
home.packages = (if cfg.enableDesktop then packages.list.desktopApps else []) ++
|
||||
(if cfg.enableNixDevel then packages.list.nixRelated else []) ++
|
||||
(if cfg.enableTerminal then packages.list.terminalApps else []);
|
||||
#Desktop
|
||||
programs.feh.enable = lib.mkDefault cfg.enableDesktop;
|
||||
|
||||
#Terminal
|
||||
programs.git = {
|
||||
enable = lib.mkDefault cfg.enableTerminal;
|
||||
package = lib.mkDefault pkgs.gitFull;
|
||||
delta.enable = lib.mkDefault cfg.enableTerminal;
|
||||
lfs.enable = lib.mkDefault cfg.enableTerminal;
|
||||
};
|
||||
programs.gitui.enable = cfg.enableTerminalExtra;
|
||||
|
||||
programs.nix-index = {
|
||||
enable = lib.mkDefault cfg.enableTerminal;
|
||||
enableBashIntegration = lib.mkDefault config.programs.bash.enable;
|
||||
enableFishIntegration = lib.mkDefault config.programs.fish.enable;
|
||||
enableZshIntegration = lib.mkDefault config.programs.zsh.enable;
|
||||
};
|
||||
|
||||
programs.direnv = {
|
||||
enable = lib.mkDefault (cfg.enableTerminalExtra || cfg.enableNixDevel);
|
||||
nix-direnv.enable = lib.mkDefault (cfg.enableNixDevel && (config.programs.direnv.enable == true));
|
||||
enableBashIntegration = lib.mkDefault config.programs.bash.enable;
|
||||
#enableFishIntegration = lib.mkDefault config.programs.fish.enable;
|
||||
enableZshIntegration = lib.mkDefault config.programs.zsh.enable;
|
||||
};
|
||||
|
||||
programs.tmux.enable = lib.mkDefault cfg.enableTerminal;
|
||||
programs.tmux.clock24 = lib.mkDefault config.programs.tmux.enable;
|
||||
|
||||
programs.fzf = {
|
||||
enable = lib.mkDefault cfg.enableTerminalExtra;
|
||||
enableBashIntegration = lib.mkDefault config.programs.bash.enable;
|
||||
enableFishIntegration = lib.mkDefault config.programs.fish.enable;
|
||||
enableZshIntegration = lib.mkDefault config.programs.zsh.enable;
|
||||
};
|
||||
|
||||
programs.exa.enable = lib.mkDefault cfg.enableTerminalExtra;
|
||||
programs.exa.enableAliases = lib.mkDefault config.programs.exa.enable;
|
||||
|
||||
programs.yt-dlp.enable = lib.mkDefault cfg.enableTerminalExtra;
|
||||
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{ config, lib, pkgs, materusPkgs, ... }:
|
||||
let
|
||||
cfg = config.materus.profile.editor.code;
|
||||
in
|
||||
{
|
||||
options.materus.profile.editor.code.enable = materusPkgs.lib.mkBoolOpt config.materus.profile.enableDesktop "Enable VSCodium with materus cfg";
|
||||
options.materus.profile.editor.code.fhs.enable = materusPkgs.lib.mkBoolOpt false "Use fhs vscodium";
|
||||
options.materus.profile.editor.code.fhs.packages = lib.mkOption { default = (ps: []);};
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.vscode = {
|
||||
enable = lib.mkDefault true;
|
||||
package = lib.mkDefault (if (cfg.fhs.enable) then (pkgs.vscodium.fhsWithPackages cfg.fhs.packages) else pkgs.vscodium);
|
||||
mutableExtensionsDir = lib.mkDefault true;
|
||||
};
|
||||
materus.profile.fonts.enable = lib.mkDefault true;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./code.nix
|
||||
./neovim.nix
|
||||
./emacs.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{ config, lib, pkgs, materusPkgs, ... }:
|
||||
let
|
||||
cfg = config.materus.profile.editor.emacs;
|
||||
in
|
||||
{
|
||||
options.materus.profile.editor.emacs.enable = materusPkgs.lib.mkBoolOpt false "Enable emacs with materus cfg";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
#TODO: Make config
|
||||
/*home.activation.doomEmacs = lib.hm.dag.entryBetween [ "onFilesChange" ] [ "writeBoundry" ] ''
|
||||
if [ ! -d ~/.emacs.d ] ;
|
||||
then ${pkgs.git}/bin/git clone --depth 1 https://github.com/doomemacs/doomemacs ~/.emacs.d
|
||||
fi
|
||||
PATH="${config.programs.git.package}/bin:${config.programs.emacs.package}/bin:$PATH"
|
||||
~/.emacs.d/bin/doom sync
|
||||
'';
|
||||
|
||||
home.file.doomEmacs.source = "${materusArg.flakeData.extraFiles}/config/emacs/doom";
|
||||
home.file.doomEmacs.target = "${config.xdg.configHome}/doom";*/
|
||||
|
||||
programs.emacs.enable = true;
|
||||
programs.emacs.package = with pkgs; lib.mkDefault (if pkgs ? emacsUnstablePgtk then emacsUnstablePgtk else emacs-gtk);
|
||||
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{ config, lib, pkgs, materusPkgs, ... }:
|
||||
let
|
||||
cfg = config.materus.profile.editor.neovim;
|
||||
in
|
||||
{
|
||||
options.materus.profile.editor.neovim.enable = materusPkgs.lib.mkBoolOpt config.materus.profile.enableTerminalExtra "Enable neovim with materus cfg";
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
coc.enable = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
vimdiffAlias = true;
|
||||
withNodeJs = true;
|
||||
withPython3 = true;
|
||||
withRuby = true;
|
||||
defaultEditor = true;
|
||||
|
||||
extraConfig = ''
|
||||
set number
|
||||
'';
|
||||
|
||||
|
||||
plugins = with pkgs.vimPlugins;[
|
||||
nerdtree
|
||||
syntastic
|
||||
|
||||
vim-fugitive
|
||||
vim-airline
|
||||
vim-nix
|
||||
|
||||
nvim-fzf
|
||||
nvim-treesitter.withAllGrammars
|
||||
|
||||
coc-clangd
|
||||
coc-python
|
||||
coc-pyright
|
||||
coc-sh
|
||||
coc-git
|
||||
coc-css
|
||||
coc-yaml
|
||||
coc-toml
|
||||
coc-json
|
||||
coc-html
|
||||
coc-highlight
|
||||
coc-java
|
||||
coc-cmake
|
||||
coc-vimlsp
|
||||
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{ config, pkgs, lib, materusPkgs, ... }:
|
||||
let
|
||||
packages = config.materus.profile.packages;
|
||||
cfg = config.materus.profile.fonts;
|
||||
in
|
||||
{
|
||||
options.materus.profile.fonts.enable = materusPkgs.lib.mkBoolOpt config.materus.profile.enableDesktop "Enable materus font settings";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
fonts.fontconfig.enable = lib.mkDefault true;
|
||||
home.packages = packages.list.fonts;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{ config, pkgs, lib, materusFlake, materusPkgs, ... }:
|
||||
let
|
||||
cfg = config.materus.profile.bash;
|
||||
in
|
||||
{
|
||||
options.materus.profile.bash.enable = materusPkgs.lib.mkBoolOpt config.materus.profile.enableTerminal "Enable materus bash config";
|
||||
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
programs.bash = {
|
||||
enable = lib.mkDefault true;
|
||||
enableCompletion = lib.mkDefault true;
|
||||
enableVteIntegration = lib.mkDefault true;
|
||||
historyControl = lib.mkDefault ["erasedups" "ignorespace"];
|
||||
shellOptions = lib.mkDefault [ "autocd" "checkwinsize" "cmdhist" "expand_aliases" "extglob" "globstar" "checkjobs" "nocaseglob" ];
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
|
||||
imports = [
|
||||
./zsh.nix
|
||||
./bash.nix
|
||||
./fish.nix
|
||||
./starship.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{ config, pkgs, lib, materusFlake, materusPkgs, ... }:
|
||||
let
|
||||
cfg = config.materus.profile.fish;
|
||||
in
|
||||
{
|
||||
options.materus.profile.fish.enable = materusPkgs.lib.mkBoolOpt config.materus.profile.enableTerminalExtra "Enable materus fish config";
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.fish = {
|
||||
enable = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
{ config, pkgs, lib, materusFlake, materusPkgs, ... }:
|
||||
let
|
||||
profile = config.materus.profile;
|
||||
cfg = config.materus.profile.starship;
|
||||
in
|
||||
{
|
||||
options.materus.profile.starship.enable = materusPkgs.lib.mkBoolOpt (profile.zsh.enable || profile.bash.enable || profile.fish.enable) "Enable materus fish config";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.starship.enable = lib.mkDefault cfg.enable;
|
||||
|
||||
programs.starship.settings = {
|
||||
|
||||
python = {
|
||||
symbol = " ";
|
||||
};
|
||||
|
||||
format = "$username@$hostname$all";
|
||||
right_format = "$cmd_duration $time";
|
||||
|
||||
time = {
|
||||
disabled = false;
|
||||
style = "bold bright-black";
|
||||
format = "[$time]($style)";
|
||||
};
|
||||
|
||||
line_break = { disabled = true; };
|
||||
shell = {
|
||||
disabled = false;
|
||||
fish_indicator = "fish";
|
||||
bash_indicator= "bash";
|
||||
zsh_indicator= "zsh";
|
||||
style = "blue bold";
|
||||
};
|
||||
|
||||
hostname = {
|
||||
ssh_only = false;
|
||||
};
|
||||
username = {
|
||||
disabled = false;
|
||||
show_always = true;
|
||||
format = "[$user]($style)";
|
||||
style_user = "white bold";
|
||||
style_root = "black bold";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
{ config, pkgs, lib, materusFlake, materusPkgs, options, ... }:
|
||||
let
|
||||
p10kcfg = "${zshcfg}/p10kcfg";
|
||||
zshcfg = "${materusFlake.selfPath}/extraFiles/config/zsh";
|
||||
cfg = config.materus.profile.zsh;
|
||||
enableStarship = config.materus.starship.enable;
|
||||
in
|
||||
{
|
||||
options.materus.profile.zsh.enable = materusPkgs.lib.mkBoolOpt config.materus.profile.enableTerminalExtra "Enable materus zsh config";
|
||||
options.materus.profile.zsh.prompt = lib.mkOption {
|
||||
type = lib.types.enum ["p10k" "starship"];
|
||||
example = "p10k";
|
||||
default = "p10k";
|
||||
};
|
||||
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [
|
||||
pkgs.ripgrep
|
||||
];
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableAutosuggestions = true;
|
||||
enableSyntaxHighlighting = true;
|
||||
enableVteIntegration = true;
|
||||
historySubstringSearch.enable = true;
|
||||
historySubstringSearch.searchUpKey = ";5A";
|
||||
historySubstringSearch.searchDownKey = ";5B";
|
||||
|
||||
|
||||
envExtra = ''
|
||||
if [[ -z "$__MATERUS_HM_ZSH" ]]; then
|
||||
__MATERUS_HM_ZSH=1
|
||||
fi
|
||||
if [[ -z "$__MATERUS_HM_ZSH_PROMPT" ]]; then
|
||||
__MATERUS_HM_ZSH_PROMPT=${cfg.prompt}
|
||||
fi
|
||||
'';
|
||||
|
||||
|
||||
initExtraFirst = lib.mkIf (cfg.prompt == "p10k" ) ''
|
||||
if [[ -r "''${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-''${(%):-%n}.zsh" ]]; then
|
||||
source "''${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-''${(%):-%n}.zsh"
|
||||
fi
|
||||
'';
|
||||
|
||||
|
||||
|
||||
plugins = [
|
||||
(lib.mkIf (cfg.prompt == "p10k" ) {
|
||||
name = "powerlevel10k";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "romkatv";
|
||||
repo = "powerlevel10k";
|
||||
rev = "bc5983543a10cff2eac30cced9208bbfd91428b8";
|
||||
sha256 = "0s8ndbpmlqakg7s7hryyi1pqij1h5dv0xv9xvr2qwwyhyj6zrx2i";
|
||||
};
|
||||
file = "powerlevel10k.zsh-theme";
|
||||
})
|
||||
];
|
||||
|
||||
history = {
|
||||
extended = true;
|
||||
save = 100000;
|
||||
size = 100000;
|
||||
share = false;
|
||||
ignoreDups = true;
|
||||
ignoreSpace = true;
|
||||
};
|
||||
|
||||
|
||||
initExtra = ''
|
||||
. ${zshcfg}/zinputrc
|
||||
source ${zshcfg}/zshcompletion.zsh
|
||||
|
||||
bindkey -r "^["
|
||||
bindkey ";5C" forward-word
|
||||
bindkey ";5D" backward-word
|
||||
'' +
|
||||
(if (cfg.prompt == "p10k" ) then
|
||||
''
|
||||
if zmodload zsh/terminfo && (( terminfo[colors] >= 256 )); then
|
||||
[[ ! -f ${p10kcfg}/fullcolor.zsh ]] || source ${p10kcfg}/fullcolor.zsh
|
||||
else
|
||||
[[ ! -f ${p10kcfg}/compatibility.zsh ]] || source ${p10kcfg}/compatibility.zsh
|
||||
fi
|
||||
'' else "");
|
||||
|
||||
};
|
||||
|
||||
programs.starship.enableZshIntegration = lib.mkForce false;
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./nix.nix
|
||||
./fonts.nix
|
||||
|
||||
./games
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{ config, pkgs, lib, materusPkgs, ... }:
|
||||
let
|
||||
packages = config.materus.profile.packages;
|
||||
cfg = config.materus.profile.fonts;
|
||||
in
|
||||
{
|
||||
options.materus.profile.fonts.enable = materusPkgs.lib.mkBoolOpt false "Enable materus font settings for OS";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
fonts.fonts = packages.list.fonts ++ packages.list.moreFonts;
|
||||
fonts.enableDefaultFonts = lib.mkForce true;
|
||||
|
||||
fonts.fontconfig.enable = lib.mkForce true;
|
||||
fonts.fontconfig.cache32Bit = lib.mkForce true;
|
||||
|
||||
fonts.fontconfig.defaultFonts.sansSerif = [ "Noto Sans" "DejaVu Sans" "WenQuanYi Zen Hei" "Noto Color Emoji" ];
|
||||
fonts.fontconfig.defaultFonts.serif = [ "Noto Serif" "DejaVu Serif" "WenQuanYi Zen Hei" "Noto Color Emoji" ];
|
||||
fonts.fontconfig.defaultFonts.emoji = [ "Noto Color Emoji" "OpenMoji Color" ];
|
||||
fonts.fontconfig.defaultFonts.monospace = [ "FiraCode Nerd Font Mono" "Noto Sans Mono" "WenQuanYi Zen Hei Mono" ];
|
||||
|
||||
fonts.fontDir.enable = lib.mkForce true;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./steam.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
{ config, pkgs, lib, materusPkgs, inputs, ... }:
|
||||
let
|
||||
optHip = pkgs.stdenv.mkDerivation rec {
|
||||
pname = "optHip";
|
||||
version = pkgs.hip.version;
|
||||
|
||||
|
||||
dontFixup = true;
|
||||
dontBuild = true;
|
||||
dontPatchELF = true;
|
||||
dontUnpack = true;
|
||||
sourceRoot = ".";
|
||||
|
||||
buildInputs = [
|
||||
pkgs.hip
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/opt/rocm
|
||||
ln -s ${pkgs.hip} $out/opt/rocm/hip
|
||||
'';
|
||||
};
|
||||
|
||||
steamPkg = pkgs.steam.override {
|
||||
extraPkgs = pkgs: [
|
||||
#config.materus.profile.packages.firefox
|
||||
optHip #for blender
|
||||
|
||||
pkgs.obs-studio-plugins.obs-vkcapture
|
||||
pkgs.steamcmd
|
||||
pkgs.nss_latest
|
||||
pkgs.libstrangle
|
||||
pkgs.libkrb5
|
||||
pkgs.keyutils
|
||||
pkgs.libGL
|
||||
pkgs.libglvnd
|
||||
pkgs.gamescope
|
||||
pkgs.steamPackages.steam
|
||||
pkgs.libxcrypt
|
||||
pkgs.gnutls
|
||||
pkgs.xorg.libXcursor
|
||||
pkgs.xorg.libXi
|
||||
pkgs.xorg.libXinerama
|
||||
pkgs.xorg.libXScrnSaver
|
||||
pkgs.xorg.xinput
|
||||
pkgs.xorg.xcbutilwm
|
||||
pkgs.xorg.xcbutilimage
|
||||
pkgs.xorg.xcbutilkeysyms
|
||||
pkgs.xorg.xcbutilerrors
|
||||
pkgs.xorg.xcbutilrenderutil
|
||||
pkgs.xorg.xcbutil
|
||||
pkgs.xorg.xwininfo
|
||||
pkgs.yad
|
||||
pkgs.xdotool
|
||||
pkgs.libinput
|
||||
pkgs.openvdb
|
||||
pkgs.openssl
|
||||
pkgs.tbb_2021_8
|
||||
pkgs.gtk4
|
||||
pkgs.gtk3
|
||||
pkgs.glib
|
||||
pkgs.gsettings-desktop-schemas
|
||||
pkgs.fuse
|
||||
pkgs.libsForQt5.breeze-qt5
|
||||
pkgs.libsForQt5.breeze-gtk
|
||||
pkgs.libsForQt5.dolphin
|
||||
pkgs.samba4Full
|
||||
pkgs.tdb
|
||||
pkgs.jbig2enc
|
||||
pkgs.jbig2dec
|
||||
pkgs.vivaldi
|
||||
pkgs.x264.lib
|
||||
pkgs.steamtinkerlaunch
|
||||
|
||||
] ++ config.materus.profile.packages.list.fonts;
|
||||
|
||||
extraLibraries = pkgs: [
|
||||
pkgs.libkrb5
|
||||
pkgs.keyutils
|
||||
pkgs.ncurses6
|
||||
pkgs.xorg.xinput
|
||||
pkgs.libinput
|
||||
pkgs.fontconfig
|
||||
pkgs.libxcrypt
|
||||
pkgs.gnutls
|
||||
pkgs.samba
|
||||
pkgs.tdb
|
||||
] ++
|
||||
(with config.hardware.opengl; if pkgs.hostPlatform.is64bit
|
||||
then [ package ] ++ extraPackages
|
||||
else [ package32 ] ++ extraPackages32);
|
||||
|
||||
extraEnv = {
|
||||
XDG_DATA_DIRS = "/usr/share:\${XDG_DATA_DIRS}";
|
||||
OBS_VKCAPTURE = "1";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
cfg = config.materus.profile.steam;
|
||||
in
|
||||
{
|
||||
options.materus.profile.steam.enable = materusPkgs.lib.mkBoolOpt false "Enable materus steam settings for OS";
|
||||
options.materus.profile.steam.package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = steamPkg;
|
||||
description = "Package used by steam";
|
||||
};
|
||||
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
hardware.steam-hardware.enable = lib.mkDefault true;
|
||||
programs.steam = {
|
||||
enable = lib.mkDefault true;
|
||||
dedicatedServer.openFirewall = lib.mkDefault true;
|
||||
remotePlay.openFirewall = lib.mkDefault true;
|
||||
};
|
||||
environment.sessionVariables = rec {
|
||||
STEAM_EXTRA_COMPAT_TOOLS_PATHS = lib.mkDefault "\${HOME}/.steam/root/compatibilitytools.d";
|
||||
};
|
||||
environment.systemPackages = [
|
||||
steamPkg
|
||||
steamPkg.run
|
||||
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{ config, pkgs, lib, inputs, materusPkgs, ... }:
|
||||
let
|
||||
cfg = config.materus.profile.nix;
|
||||
in
|
||||
{
|
||||
options.materus.profile.nix.enable = materusPkgs.lib.mkBoolOpt false "Enable materus nix settings";
|
||||
config.nix = lib.mkIf cfg.enable {
|
||||
package = lib.mkDefault pkgs.nixVersions.unstable;
|
||||
|
||||
settings = {
|
||||
experimental-features = [ "nix-command" "flakes" "repl-flake" "no-url-literals" ];
|
||||
auto-optimise-store = true;
|
||||
trusted-users = [ "root" "@wheel" ];
|
||||
|
||||
substituters = [
|
||||
"https://nix-community.cachix.org"
|
||||
"https://cache.nixos.org/"
|
||||
"https://nixerus.cachix.org/"
|
||||
];
|
||||
trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nixerus.cachix.org-1:2x7sIG7y1vAoxc8BNRJwsfapZsiX4hIl4aTi9V5ZDdE="];
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user