Merge branch 'module-test'
This commit is contained in:
commit
a1a5c34747
23 changed files with 445 additions and 48 deletions
|
@ -8,6 +8,7 @@
|
||||||
./home/profiles
|
./home/profiles
|
||||||
./hosts
|
./hosts
|
||||||
./modules
|
./modules
|
||||||
|
./home-modules
|
||||||
];
|
];
|
||||||
flake = {
|
flake = {
|
||||||
};
|
};
|
||||||
|
|
5
home-modules/default.nix
Normal file
5
home-modules/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
flake.homeManagerModules = {
|
||||||
|
xun = import ./xun;
|
||||||
|
};
|
||||||
|
}
|
8
home-modules/xun/default.nix
Normal file
8
home-modules/xun/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./develop
|
||||||
|
./gaming
|
||||||
|
./programs
|
||||||
|
./desktop
|
||||||
|
];
|
||||||
|
}
|
39
home-modules/xun/desktop/default.nix
Normal file
39
home-modules/xun/desktop/default.nix
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.xun.desktop;
|
||||||
|
in {
|
||||||
|
options.xun.desktop = {
|
||||||
|
xdg.enable = lib.mkEnableOption "xdg env vars";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkMerge [
|
||||||
|
(lib.mkIf cfg.xdg.enable {
|
||||||
|
xdg = let
|
||||||
|
home = config.home.homeDirectory;
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
cacheHome = config.home.homeDirectory + "/.local/cache";
|
||||||
|
|
||||||
|
userDirs = {
|
||||||
|
enable = true;
|
||||||
|
desktop = home + "/desktop";
|
||||||
|
documents = home + "/docs";
|
||||||
|
download = home + "/down";
|
||||||
|
music = home + "/music";
|
||||||
|
pictures = home + "/pics";
|
||||||
|
publicShare = home + "/share";
|
||||||
|
videos = home + "/vids";
|
||||||
|
extraConfig = {
|
||||||
|
XDG_SCREENSHOTS_DIR = config.xdg.userDirs.pictures + "/screenshots";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = [pkgs.xdg-utils];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
62
home-modules/xun/develop/default.nix
Normal file
62
home-modules/xun/develop/default.nix
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.xun.develop;
|
||||||
|
in {
|
||||||
|
options.xun.develop = let
|
||||||
|
enableOption = name: default: lib.mkEnableOption name // {inherit default;};
|
||||||
|
in {
|
||||||
|
enable = enableOption "develop" false;
|
||||||
|
git.enable = enableOption "git" true;
|
||||||
|
nix.enable = enableOption "nix" true;
|
||||||
|
tools.enable = enableOption "tools" true;
|
||||||
|
docs.enable = enableOption "man caches" false;
|
||||||
|
lsp.c.enable = enableOption "clangd" false;
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable (
|
||||||
|
lib.mkMerge [
|
||||||
|
(lib.mkIf cfg.nix.enable {
|
||||||
|
home.packages = with pkgs; [nil alejandra];
|
||||||
|
})
|
||||||
|
(lib.mkIf cfg.tools.enable {
|
||||||
|
home.packages = with pkgs; [tokei];
|
||||||
|
})
|
||||||
|
(lib.mkIf cfg.git.enable {
|
||||||
|
home.packages = with pkgs; [lazygit];
|
||||||
|
programs.gh.enable = true;
|
||||||
|
programs.gh-dash.enable = true;
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
delta.enable = true;
|
||||||
|
lfs.enable = true;
|
||||||
|
|
||||||
|
ignores = ["*~" ".direnv"];
|
||||||
|
|
||||||
|
signing = {
|
||||||
|
key = "${config.home.homeDirectory}/.ssh/id_ed25519";
|
||||||
|
signByDefault = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = {
|
||||||
|
gpg.format = "ssh";
|
||||||
|
push.autoSetupRemote = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
userEmail = "xunuwu@gmail.com";
|
||||||
|
userName = "xunuwu";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(lib.mkIf cfg.lsp.c.enable {
|
||||||
|
home.packages = with pkgs; [clang-tools];
|
||||||
|
})
|
||||||
|
(lib.mkIf cfg.docs.enable {
|
||||||
|
programs.man.generateCaches = true;
|
||||||
|
})
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
26
home-modules/xun/gaming/default.nix
Normal file
26
home-modules/xun/gaming/default.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
self,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.xun.gaming;
|
||||||
|
in {
|
||||||
|
options.xun.gaming = {
|
||||||
|
krunker.enable = lib.mkEnableOption "krunker";
|
||||||
|
roblox.sobercookie.enable = lib.mkEnableOption "sobercookie";
|
||||||
|
};
|
||||||
|
config = lib.mkMerge [
|
||||||
|
(lib.mkIf cfg.krunker.enable {
|
||||||
|
home.packages = [
|
||||||
|
self.packages.${pkgs.system}.krunker
|
||||||
|
];
|
||||||
|
})
|
||||||
|
(lib.mkIf cfg.roblox.sobercookie.enable {
|
||||||
|
home.packages = [
|
||||||
|
self.packages.${pkgs.system}.sobercookie
|
||||||
|
];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
5
home-modules/xun/programs/default.nix
Normal file
5
home-modules/xun/programs/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./terminal
|
||||||
|
];
|
||||||
|
}
|
132
home-modules/xun/programs/terminal/default.nix
Normal file
132
home-modules/xun/programs/terminal/default.nix
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.xun.programs.terminal;
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
inputs.nix-index-database.hmModules.nix-index
|
||||||
|
];
|
||||||
|
|
||||||
|
options.xun.programs.terminal = {
|
||||||
|
direnv.enable = lib.mkEnableOption "direnv";
|
||||||
|
comma.enable = lib.mkEnableOption "comma";
|
||||||
|
tmux.enable = lib.mkEnableOption "tmux";
|
||||||
|
irssi.enable = lib.mkEnableOption "irssi";
|
||||||
|
shell.zsh = {
|
||||||
|
enable = lib.mkEnableOption "zsh";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkMerge [
|
||||||
|
(lib.mkIf cfg.shell.zsh.enable {
|
||||||
|
programs.fzf.enable = true;
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
autocd = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
autosuggestion.enable = true;
|
||||||
|
dotDir = ".config/zsh";
|
||||||
|
defaultKeymap = "emacs";
|
||||||
|
|
||||||
|
history = {
|
||||||
|
expireDuplicatesFirst = true;
|
||||||
|
path = "${config.xdg.dataHome}/zsh_history";
|
||||||
|
};
|
||||||
|
initExtra = ''
|
||||||
|
unsetopt beep
|
||||||
|
|
||||||
|
## KEYBINDS ##
|
||||||
|
bindkey "^[[1;5D" backward-word
|
||||||
|
bindkey "^[[1;5C" forward-word
|
||||||
|
|
||||||
|
# improve ^w behaviour
|
||||||
|
WORDCHARS=
|
||||||
|
|
||||||
|
# pretty completion menu
|
||||||
|
zstyle ':completion:*' menu select
|
||||||
|
|
||||||
|
# shift-tab in completion menu
|
||||||
|
bindkey '^[[Z' reverse-menu-complete
|
||||||
|
|
||||||
|
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' # Case insensitive completion
|
||||||
|
|
||||||
|
|
||||||
|
## MISC ##
|
||||||
|
setopt extendedglob
|
||||||
|
|
||||||
|
|
||||||
|
# Show completion categories
|
||||||
|
zstyle ':completion:*:*:*:*:descriptions' format '%F{magenta}<-%d->%f'
|
||||||
|
|
||||||
|
|
||||||
|
## PROMPT ##
|
||||||
|
autoload -Uz vcs_info
|
||||||
|
precmd_vcs_info() { vcs_info }
|
||||||
|
precmd_functions+=( precmd_vcs_info )
|
||||||
|
zstyle ':vcs_info:git:*' formats ' %b '
|
||||||
|
setopt prompt_subst
|
||||||
|
|
||||||
|
PROMPT="%F{blue}[%F{magenta}%n%F{blue}@%F{magenta}%M%F{blue}] %~%f %F{green}\$vcs_info_msg_0_%f%(?..%F{red}| %? )%#%f "
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(lib.mkIf cfg.direnv.enable {
|
||||||
|
programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(lib.mkIf cfg.comma.enable {
|
||||||
|
programs.nix-index-database.comma.enable = true;
|
||||||
|
programs.nix-index = {
|
||||||
|
enableBashIntegration = false;
|
||||||
|
enableFishIntegration = false;
|
||||||
|
enableZshIntegration = false;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(lib.mkIf cfg.tmux.enable {
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
baseIndex = 1;
|
||||||
|
clock24 = true;
|
||||||
|
mouse = true;
|
||||||
|
escapeTime = 0;
|
||||||
|
extraConfig = ''
|
||||||
|
bind '"' split-window -c "#{pane_current_path}"
|
||||||
|
bind % split-window -h -c "#{pane_current_path}"
|
||||||
|
bind c new-window -c "#{pane_current_path}";
|
||||||
|
|
||||||
|
set -g status-style bg=default
|
||||||
|
setw -g window-status-current-style fg=#be95ff
|
||||||
|
set -g status-justify absolute-centre
|
||||||
|
set -g status-interval 5
|
||||||
|
set -g status-right "#[fg=#25be6a]#(free -h | awk 'NR==2{print $3\"/\"$2}')"
|
||||||
|
set -ag status-right "#[fg=default] %a %d %b %H:%M"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(lib.mkIf cfg.irssi.enable {
|
||||||
|
# TODO: make more customizable maybe
|
||||||
|
programs.irssi = {
|
||||||
|
enable = true;
|
||||||
|
networks = {
|
||||||
|
liberachat = {
|
||||||
|
nick = "wheat";
|
||||||
|
server = {
|
||||||
|
address = "irc.libera.chat";
|
||||||
|
port = 6697;
|
||||||
|
autoConnect = true;
|
||||||
|
};
|
||||||
|
channels = {
|
||||||
|
nixos.autoJoin = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
|
@ -10,7 +10,7 @@
|
||||||
"xun@kidney" = [
|
"xun@kidney" = [
|
||||||
../.
|
../.
|
||||||
./kidney
|
./kidney
|
||||||
inputs.nix-index-database.hmModules.nix-index
|
# inputs.nix-index-database.hmModules.nix-index
|
||||||
{
|
{
|
||||||
programs.nix-index = {
|
programs.nix-index = {
|
||||||
enableBashIntegration = false;
|
enableBashIntegration = false;
|
||||||
|
@ -23,17 +23,9 @@
|
||||||
"xun@nixdesk" = [
|
"xun@nixdesk" = [
|
||||||
../.
|
../.
|
||||||
./nixdesk
|
./nixdesk
|
||||||
inputs.nix-index-database.hmModules.nix-index
|
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
inputs.nur.hmModules.nur
|
inputs.nur.hmModules.nur
|
||||||
{
|
{home.stateVersion = "23.11";}
|
||||||
programs.nix-index = {
|
|
||||||
enableBashIntegration = false;
|
|
||||||
enableFishIntegration = false;
|
|
||||||
enableZshIntegration = false;
|
|
||||||
};
|
|
||||||
home.stateVersion = "23.11";
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
"xun@hopper" = [
|
"xun@hopper" = [
|
||||||
../.
|
../.
|
||||||
|
|
|
@ -1,19 +1,37 @@
|
||||||
{inputs, ...}: {
|
{
|
||||||
|
inputs,
|
||||||
|
self,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
|
self.homeManagerModules.xun
|
||||||
inputs.small-nvim.homeManagerModules.small-nvim
|
inputs.small-nvim.homeManagerModules.small-nvim
|
||||||
../../terminal/shell/zsh.nix
|
# ../../terminal/shell/zsh.nix
|
||||||
../../terminal/programs
|
# ../../terminal/programs
|
||||||
../../terminal/programs/lazygit.nix
|
# ../../terminal/programs/lazygit.nix
|
||||||
../../develop
|
# ../../develop
|
||||||
../../develop/small-misc.nix
|
# ../../develop/small-misc.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
xun.small-nvim = {
|
xun = {
|
||||||
enable = true;
|
small-nvim = {
|
||||||
colorscheme = {
|
enable = true;
|
||||||
name = "dayfox";
|
colorscheme = {
|
||||||
package = "EdenEast/nightfox.nvim";
|
name = "dayfox";
|
||||||
|
package = "EdenEast/nightfox.nvim";
|
||||||
|
};
|
||||||
|
wakatime.enable = false;
|
||||||
|
};
|
||||||
|
develop.enable = true;
|
||||||
|
desktop = {
|
||||||
|
xdg.enable = true;
|
||||||
|
};
|
||||||
|
programs.terminal = {
|
||||||
|
shell.zsh.enable = true;
|
||||||
|
direnv.enable = true;
|
||||||
|
comma.enable = true;
|
||||||
|
tmux.enable = true;
|
||||||
|
irssi.enable = true;
|
||||||
};
|
};
|
||||||
wakatime.enable = false;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,19 @@
|
||||||
{inputs, ...}: {
|
{
|
||||||
|
inputs,
|
||||||
|
self,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
|
self.homeManagerModules.xun
|
||||||
inputs.small-nvim.homeManagerModules.small-nvim
|
inputs.small-nvim.homeManagerModules.small-nvim
|
||||||
./kanshi.nix
|
./kanshi.nix
|
||||||
./defaults.nix
|
./defaults.nix
|
||||||
|
|
||||||
../../secrets
|
../../secrets
|
||||||
|
|
||||||
../../terminal
|
# ../../terminal
|
||||||
../../terminal/programs/zellij.nix
|
../../terminal/programs/zellij.nix
|
||||||
../../terminal/programs/irssi.nix
|
# ../../terminal/programs/irssi.nix
|
||||||
../../terminal/programs/lazygit.nix
|
../../terminal/programs/lazygit.nix
|
||||||
../../terminal/programs/beets.nix
|
../../terminal/programs/beets.nix
|
||||||
../../editors/emacs.nix
|
../../editors/emacs.nix
|
||||||
|
@ -28,8 +33,8 @@
|
||||||
../../programs/desktop/sway
|
../../programs/desktop/sway
|
||||||
|
|
||||||
# development
|
# development
|
||||||
../../develop
|
#../../develop
|
||||||
../../develop/small-misc.nix
|
#../../develop/small-misc.nix
|
||||||
|
|
||||||
# programs
|
# programs
|
||||||
../../programs/misc/keepassxc.nix
|
../../programs/misc/keepassxc.nix
|
||||||
|
@ -58,12 +63,29 @@
|
||||||
../../services/system/polkit-agent.nix
|
../../services/system/polkit-agent.nix
|
||||||
../../services/system/udiskie.nix # although i dont need this for usb memory, it is quite convenient for flashing qmk
|
../../services/system/udiskie.nix # although i dont need this for usb memory, it is quite convenient for flashing qmk
|
||||||
];
|
];
|
||||||
xun.small-nvim = {
|
xun = {
|
||||||
enable = true;
|
small-nvim = {
|
||||||
colorscheme = {
|
enable = true;
|
||||||
name = "carbonfox";
|
colorscheme = {
|
||||||
package = "EdenEast/nightfox.nvim";
|
name = "carbonfox";
|
||||||
|
package = "EdenEast/nightfox.nvim";
|
||||||
|
};
|
||||||
|
wakatime.enable = true;
|
||||||
|
};
|
||||||
|
desktop.xdg.enable = true;
|
||||||
|
programs.terminal = {
|
||||||
|
shell.zsh.enable = true;
|
||||||
|
direnv.enable = true;
|
||||||
|
comma.enable = true;
|
||||||
|
tmux.enable = true;
|
||||||
|
irssi.enable = true;
|
||||||
|
};
|
||||||
|
develop = {
|
||||||
|
enable = true;
|
||||||
|
docs.enable = true;
|
||||||
|
lsp = {
|
||||||
|
c.enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
wakatime.enable = true;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,7 +139,7 @@
|
||||||
"Google".metaData.alias = "@go";
|
"Google".metaData.alias = "@go";
|
||||||
"DuckDuckGo".metaData.alias = "@ddg";
|
"DuckDuckGo".metaData.alias = "@ddg";
|
||||||
"Wikipedia".metaData.alias = "@wiki";
|
"Wikipedia".metaData.alias = "@wiki";
|
||||||
"Bind".metaData.hidden = true;
|
"Bing".metaData.hidden = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
userChrome = builtins.readFile ./userChrome.css;
|
userChrome = builtins.readFile ./userChrome.css;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{
|
{pkgs, ...}: {
|
||||||
programs.mpv = {
|
programs.mpv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = {
|
||||||
|
@ -29,5 +29,8 @@
|
||||||
user-agent = "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0";
|
user-agent = "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
scripts = with pkgs.mpvScripts; [
|
||||||
|
cutter
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
# TODO: move this somewhere more reasonable
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
|
|
@ -43,10 +43,15 @@ in {
|
||||||
(modulePaths [
|
(modulePaths [
|
||||||
"core/tools.nix"
|
"core/tools.nix"
|
||||||
"core/users.nix"
|
"core/users.nix"
|
||||||
|
"core/locale.nix"
|
||||||
|
|
||||||
"programs/tools.nix"
|
"programs/tools.nix"
|
||||||
"programs/zsh.nix"
|
"programs/zsh.nix"
|
||||||
"programs/home-manager.nix"
|
"programs/home-manager.nix"
|
||||||
|
"hardware/graphics.nix"
|
||||||
|
|
||||||
|
"services/flatpak.nix"
|
||||||
|
"services/xdg-portals.nix"
|
||||||
|
|
||||||
"nix"
|
"nix"
|
||||||
"nix/gc.nix"
|
"nix/gc.nix"
|
||||||
|
@ -83,9 +88,9 @@ in {
|
||||||
#"services/ollama.nix"
|
#"services/ollama.nix"
|
||||||
"desktop/x11/nosleep.nix"
|
"desktop/x11/nosleep.nix"
|
||||||
|
|
||||||
"programs/gamemode.nix"
|
# "programs/gamemode.nix" # TEMP: TODO
|
||||||
"programs/gamescope.nix"
|
# "programs/gamescope.nix" # TEMP: TODO
|
||||||
"programs/steam.nix"
|
# "programs/steam.nix" # TEMP: TODO
|
||||||
"programs/RE"
|
"programs/RE"
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./hibernate-boot.nix
|
./hibernate-boot.nix
|
||||||
|
./testing.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.hostName = "nixdesk";
|
networking.hostName = "nixdesk";
|
||||||
|
|
11
hosts/nixdesk/testing.nix
Normal file
11
hosts/nixdesk/testing.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{self, ...}: {
|
||||||
|
imports = [
|
||||||
|
self.nixosModules.xun
|
||||||
|
];
|
||||||
|
xun.gaming = {
|
||||||
|
enable = true;
|
||||||
|
steam.enable = true;
|
||||||
|
gamescope.enable = true;
|
||||||
|
gamemode.enable = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
flake.nixosModules = {
|
flake.nixosModules = {
|
||||||
#name = import ./name;
|
#name = import ./name;
|
||||||
|
xun = import ./xun;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
5
modules/xun/default.nix
Normal file
5
modules/xun/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./gaming
|
||||||
|
];
|
||||||
|
}
|
47
modules/xun/gaming/default.nix
Normal file
47
modules/xun/gaming/default.nix
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.xun.gaming;
|
||||||
|
in {
|
||||||
|
options.xun.gaming = {
|
||||||
|
enable = lib.mkEnableOption "gaming";
|
||||||
|
steam.enable = lib.mkEnableOption "steam";
|
||||||
|
gamemode.enable = lib.mkEnableOption "gamemode";
|
||||||
|
gamescope.enable = lib.mkEnableOption "gamescope";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable ({
|
||||||
|
programs.gamescope = lib.mkIf cfg.gamescope.enable {
|
||||||
|
enable = true;
|
||||||
|
capSysNice = false; # doesnt work with steam & heroic
|
||||||
|
};
|
||||||
|
programs.gamemode.enable = cfg.gamemode.enable;
|
||||||
|
}
|
||||||
|
// lib.mkIf cfg.steam.enable {
|
||||||
|
# TODO: protontricks & steamtinkerlaunch
|
||||||
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
remotePlay.openFirewall = true;
|
||||||
|
localNetworkGameTransfers.openFirewall = true;
|
||||||
|
extraCompatPackages = with pkgs; [
|
||||||
|
proton-ge-bin
|
||||||
|
];
|
||||||
|
## Fixes gamescope (NOTE: no clue what this means)
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
xorg.libXcursor
|
||||||
|
xorg.libXi
|
||||||
|
xorg.libXinerama
|
||||||
|
xorg.libXScrnSaver
|
||||||
|
libpng
|
||||||
|
libpulseaudio
|
||||||
|
libvorbis
|
||||||
|
stdenv.cc.cc.lib
|
||||||
|
libkrb5
|
||||||
|
keyutils
|
||||||
|
];
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
|
@ -3,17 +3,8 @@
|
||||||
./security.nix
|
./security.nix
|
||||||
./users.nix
|
./users.nix
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
|
./locale.nix
|
||||||
../nix
|
../nix
|
||||||
../programs/zsh.nix
|
../programs/zsh.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
i18n = {
|
|
||||||
defaultLocale = "en_US.UTF-8";
|
|
||||||
supportedLocales = [
|
|
||||||
"en_US.UTF-8/UTF-8"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
services.xserver.xkb.layout = "eu";
|
|
||||||
|
|
||||||
time.timeZone = lib.mkDefault "Europe/Berlin";
|
|
||||||
}
|
}
|
||||||
|
|
11
system/core/locale.nix
Normal file
11
system/core/locale.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{lib, ...}: {
|
||||||
|
i18n = {
|
||||||
|
defaultLocale = "en_US.UTF-8";
|
||||||
|
supportedLocales = [
|
||||||
|
"en_US.UTF-8/UTF-8"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
services.xserver.xkb.layout = "eu";
|
||||||
|
|
||||||
|
time.timeZone = lib.mkDefault "Europe/Berlin";
|
||||||
|
}
|
11
system/services/xdg-portals.nix
Normal file
11
system/services/xdg-portals.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
config = {
|
||||||
|
common.default = ["gtk"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue