Big update:
- WIP: Installer configuration to be used for portable or new systems. - Add defaultApps (zen for links, codium for plain text). - Refactor Ollama (AI) to skip model selection, WIP "codewriter" model. - Password-manager: Switch to wayland package for rofi-rbw, increase lock timeout. - Add mangohud config that shows FPS, frame time, throttling status in a horizontal layout below OW's HUD. - Add nixGL config to use mesa and vulkan. - Refactor configuration.nix as a "hub" file that just imports other files. - amdgpu: Remove problematic amdvlk driver. Was causing misbehavior in Overwatch. - gaming: Add gamescope and gamemode.
This commit is contained in:
parent
e8b0f33686
commit
d002643347
@ -62,6 +62,29 @@
|
||||
};
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
installer = lib.nixosSystem {
|
||||
modules = [
|
||||
./nixos/installer/configuration.nix
|
||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
users.joey = import ./home-manager/installer/home.nix;
|
||||
sharedModules = [
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
inputs.stylix.homeManagerModules.stylix
|
||||
];
|
||||
extraSpecialArgs = { inherit pkgs pkgs-unstable inputs; inherit vars; };
|
||||
};
|
||||
}
|
||||
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-base.nix"
|
||||
];
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
inherit pkgs pkgs-unstable inputs;
|
||||
inherit vars;
|
||||
};
|
||||
};
|
||||
desktop = lib.nixosSystem {
|
||||
modules = [
|
||||
./nixos/desktop/configuration.nix
|
||||
|
@ -2,27 +2,31 @@
|
||||
home.packages = with pkgs; [
|
||||
ollama-rocm
|
||||
( writeShellApplication {
|
||||
name = "ollama-quick-chat"; # { filePath }: { none } (side-effect: transcodes & remuxes file to x264/mp4)
|
||||
name = "ollama-chat";
|
||||
runtimeInputs = [
|
||||
libnotify
|
||||
];
|
||||
text = ''
|
||||
#!/bin/bash
|
||||
MODEL=''$''\{1:-""}
|
||||
|
||||
if [ -z "''$''\{MODEL}" ]; then
|
||||
echo "No model selected. Choose a model from the list below:"
|
||||
unset modellist
|
||||
while read -r model; do
|
||||
modellist+=( "$model" )
|
||||
done< <(${pkgs.ollama-rocm}/bin/ollama list | tail -n+2)
|
||||
select model in "''$''\{modellist[@]}"; do
|
||||
MODEL=$(echo "$model" | tr -s ' ' | cut -d' ' -f1)
|
||||
echo "Selected: $MODEL"
|
||||
export MODEL
|
||||
break
|
||||
done
|
||||
fi
|
||||
# shellcheck disable=SC2034
|
||||
DEFAULT_MODEL="llama3.2:3b"
|
||||
|
||||
MODEL=''$''\{1:-DEFAULT_MODEL}
|
||||
|
||||
# if [ -z "''$''\{MODEL}" ]; then
|
||||
# echo "No model selected. Choose a model from the list below:"
|
||||
# unset modellist
|
||||
# while read -r model; do
|
||||
# modellist+=( "$model" )
|
||||
# done< <(${pkgs.ollama-rocm}/bin/ollama list | tail -n+2)
|
||||
# select model in "''$''\{modellist[@]}"; do
|
||||
# MODEL=$(echo "$model" | tr -s ' ' | cut -d' ' -f1)
|
||||
# echo "Selected: $MODEL"
|
||||
# export MODEL
|
||||
# break
|
||||
# done
|
||||
# fi
|
||||
|
||||
echo "Loading model $MODEL"
|
||||
${pkgs.ollama-rocm}/bin/ollama run "$MODEL" ""
|
||||
@ -37,11 +41,12 @@
|
||||
];
|
||||
|
||||
xdg.desktopEntries.ollama = {
|
||||
exec = "kitty-popup ollama-quick-chat";
|
||||
exec = "kitty-popup ollama-wrapped";
|
||||
icon = "/home/${vars.user.username}/.icons/custom/ollama.png";
|
||||
name = "AI Chat";
|
||||
categories = [ "Utility" ];
|
||||
type = "Application";
|
||||
actions = {};
|
||||
};
|
||||
|
||||
home.file."ollama.png" = {
|
||||
@ -52,11 +57,33 @@
|
||||
};
|
||||
};
|
||||
|
||||
home.file."assistant.Modelfile" = {
|
||||
target = ".ollama/assistant.Modelfile";
|
||||
home.file."codewriter.Modelfile" = {
|
||||
target = ".ollama/codewriter.Modelfile";
|
||||
text = ''
|
||||
FROM llama3.2
|
||||
SYSTEM You are an assistant specialized in providing concise answers to prompts. Your answers should never be longer than 300 words. If the user asks a question with a complex answer, use references to outside resources such as specialized wikis to direct the user toward the answer to their question.
|
||||
FROM llama3.3:70b
|
||||
PARAMETER temperature 1
|
||||
SYSTEM """
|
||||
I want you to act as a senior full-stack tech leader and top-tier brilliant software developer, you embody technical excellence and a deep understanding of a wide range of technologies.
|
||||
Your expertise covers not just coding, but also algorithm design, system architecture, and technology strategy.
|
||||
For every question there is no need to explain, only give the solution.
|
||||
|
||||
Coding Mastery: Possess exceptional skills in programming languages including Python, JavaScript, SQL, NoSQL, mySQL, C++, C, Rust, Groovy, Go, and Java.
|
||||
Your proficiency goes beyond mere syntax; you explore and master the nuances and complexities of each language, crafting code that is both highly efficient and robust.
|
||||
Your capability to optimize performance and manage complex codebases sets the benchmark in software development.
|
||||
Python | JavaScript | C++ | C | RUST | Groovy | Go | Java | SQL | MySQL | NoSQL
|
||||
Efficient, Optimal, Good Performance, Excellent Complexity, Robust Code
|
||||
|
||||
Cutting-Edge Technologies: Adept at leveraging the latest technologies, frameworks, and tools to drive innovation and efficiency.
|
||||
Experienced with Docker, Kubernetes, React, Angular, AWS, Supabase, Firebase, Azure, and Google Cloud.
|
||||
Your understanding of these platforms enables you to architect and deploy scalable, resilient applications that meet modern business demands.
|
||||
Docker | Kubernetes | React | Angular | AWS | Supabase | Firebase | Azure | Google Cloud Seamlessly Integrating Modern Tech Stacks Complex Algorithms & Data Structures Optimized Solutions for Enhanced Performance & Scalability
|
||||
|
||||
Solution Architect: Your comprehensive grasp of the software development lifecycle empowers you to design solutions that are not only technically sound but also align perfectly with business goals. From concept to deployment, you ensure adherence to industry best practices and agile methodologies, making the development process both agile and effective.
|
||||
|
||||
Interactive Solutions: When crafting user-facing features, employ modern ES6 JavaScript, TypeScript, and native browser APIs to manage interactivity seamlessly, enabling a dynamic and engaging user experience. Your focus lies in delivering functional, ready-to-deploy code, ensuring that explanations are succinct and directly aligned with the required solutions.
|
||||
|
||||
Never explain the code just write code.
|
||||
"""
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ vars, pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
rofi-rbw
|
||||
rofi-rbw-wayland
|
||||
wl-clipboard
|
||||
dotool
|
||||
];
|
||||
@ -11,6 +11,10 @@
|
||||
};
|
||||
programs.rofi = {
|
||||
enable = false;
|
||||
configPath = "$XDG_CONFIG_HOME/rofi/config.rasi";
|
||||
extraConfig = {};
|
||||
location = "center";
|
||||
terminal = "${pkgs.kitty}/bin/kitty";
|
||||
};
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
@ -21,14 +25,14 @@
|
||||
settings = {
|
||||
base_url = "https://bitwarden.jafner.tools";
|
||||
email = "jafner425@gmail.com";
|
||||
lock_timeout = 604800;
|
||||
lock_timeout = 2592000;
|
||||
pinentry = pkgs.pinentry-qt;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.desktopEntries = {
|
||||
rofi-rbw = {
|
||||
exec = "${pkgs.rofi-rbw}/bin/rofi-rbw";
|
||||
exec = "${pkgs.rofi-rbw-wayland}/bin/rofi-rbw";
|
||||
icon = "/home/${vars.user.username}/.icons/custom/bitwarden.png";
|
||||
name = "Bitwarden";
|
||||
categories = [ "Utility" "Security" ];
|
||||
@ -40,12 +44,12 @@
|
||||
target = ".config/rofi-rbw.rc";
|
||||
text = ''
|
||||
action="type"
|
||||
typing-key-delay=5
|
||||
no-folder
|
||||
typing-key-delay=0
|
||||
selector-args="-W 40% -H 30%"
|
||||
selector="wofi"
|
||||
clipboarder="wl-copy"
|
||||
typer="dotool"
|
||||
keybindings="Enter:type:username:enter:tab:type:password:enter:copy:totp"
|
||||
'';
|
||||
};
|
||||
|
||||
|
13
dotfiles/home-manager/desktop/configuration/defaultApps.nix
Normal file
13
dotfiles/home-manager/desktop/configuration/defaultApps.nix
Normal file
@ -0,0 +1,13 @@
|
||||
{ ... }: {
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"text/plain" = "codium.desktop";
|
||||
"text/html" = "zen.desktop";
|
||||
"x-scheme-handler/http" = "zen.desktop";
|
||||
"x-scheme-handler/https" = "zen.desktop";
|
||||
"x-scheme-handler/about" = "zen.desktop";
|
||||
"x-scheme-handler/unknown" = "zen.desktop";
|
||||
};
|
||||
};
|
||||
}
|
44
dotfiles/home-manager/desktop/configuration/mangohud.nix
Normal file
44
dotfiles/home-manager/desktop/configuration/mangohud.nix
Normal file
@ -0,0 +1,44 @@
|
||||
{ lib, ... }: {
|
||||
programs.mangohud = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# Metrics
|
||||
cpu_stats = 0;
|
||||
gpu_stats = 0;
|
||||
frame_timing = 0;
|
||||
vram = 0;
|
||||
fps = 1;
|
||||
fps_color_change = 1;
|
||||
fps_value = "59,239";
|
||||
frametime = 1;
|
||||
# Env info
|
||||
vulkan_driver = 1;
|
||||
gamemode = 1;
|
||||
present_mode = 0;
|
||||
throttling_status = 1;
|
||||
# Graphs
|
||||
graphs = "";
|
||||
# Appearance & presentation
|
||||
legacy_layout = 1;
|
||||
hud_no_margin = 1;
|
||||
font_size = lib.mkForce 14;
|
||||
no_small_font = 1;
|
||||
position = "top-left";
|
||||
offset_x = 3;
|
||||
offset_y = 24;
|
||||
width = 0;
|
||||
height = 0;
|
||||
table_columns = 0;
|
||||
horizontal = 1;
|
||||
horizontal_stretch = 0;
|
||||
hud_compact = 1;
|
||||
toggle_hud = "Shift_R+F12";
|
||||
background_alpha = lib.mkForce 0.5;
|
||||
alpha = lib.mkForce 1.0;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
# OW HUD background: #1d253a
|
||||
# OW HUD text: #b2bedc
|
||||
# cat ~/.config/MangoHud/MangoHud.conf
|
7
dotfiles/home-manager/desktop/configuration/nixGL.nix
Normal file
7
dotfiles/home-manager/desktop/configuration/nixGL.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{ ... }: {
|
||||
nixGL = {
|
||||
vulkan.enable = true;
|
||||
defaultWrapper = "mesa";
|
||||
installScripts = [ "mesa" ];
|
||||
};
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs.rocmPackages; [
|
||||
rocm-smi
|
||||
rocminfo
|
||||
];
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
gamepad-tool
|
||||
linuxKernel.packages.linux_6_11.xpadneo
|
||||
];
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
{ ... }: {
|
||||
services.flatpak.packages = [ "xyz.z3ntu.razergenie/x86_64/stable" ];
|
||||
}
|
||||
|
@ -4,6 +4,8 @@
|
||||
./configuration/stylix.nix
|
||||
./configuration/git.nix
|
||||
./configuration/keys.nix
|
||||
./configuration/defaultApps.nix
|
||||
./configuration/mangohud.nix
|
||||
./apps/browser.nix
|
||||
./apps/discord.nix
|
||||
./apps/obs-studio.nix
|
||||
@ -19,14 +21,11 @@
|
||||
./apps/email.nix
|
||||
./apps/emulators.nix
|
||||
./apps/ai.nix
|
||||
./hardware/goxlr.nix
|
||||
./hardware/razer.nix
|
||||
./hardware/game-controller.nix
|
||||
./hardware/amdgpu.nix
|
||||
./services/flatpak.nix
|
||||
./services/kdeconnect.nix
|
||||
./services/nextcloud.nix
|
||||
./services/protonmail.nix
|
||||
./services/goxlr-utility.nix
|
||||
./scripts/ffmpeg.nix
|
||||
./scripts/kitty-popup.nix
|
||||
];
|
||||
|
@ -1,5 +1,7 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = [ pkgs.goxlr-utility ];
|
||||
home.packages = with pkgs; [
|
||||
goxlr-utility
|
||||
];
|
||||
systemd.user.services = {
|
||||
goxlr-utility = {
|
||||
Unit = {
|
@ -1,8 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
steam
|
||||
steam-run
|
||||
lutris-unwrapped
|
||||
protonup-ng
|
||||
];
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
{ ... }: {
|
||||
services.goxlr-utility.enable = true;
|
||||
hardware.wooting.enable = true;
|
||||
hardware.xpadneo.enable = true;
|
||||
hardware.openrazer = {
|
||||
enable = true;
|
||||
users = [ "joey" ];
|
||||
batteryNotifier = {
|
||||
enable = true;
|
||||
frequency = 600;
|
||||
percentage = 40;
|
||||
};
|
||||
};
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
services.displayManager.defaultSession = "plasma";
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
programs.kdeconnect.enable = true;
|
||||
environment.systemPackages = with pkgs.kdePackages; [ kcalc ];
|
||||
environment.plasma6.excludePackages = with pkgs.kdePackages; [
|
||||
elisa
|
||||
kate
|
||||
okular
|
||||
discover
|
||||
];
|
||||
}
|
@ -1,162 +1,26 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{ ... }: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./addons/peripherals.nix
|
||||
./addons/samba-client.nix
|
||||
./addons/plasma6.nix
|
||||
./addons/gaming.nix
|
||||
./addons/fonts.nix
|
||||
./addons/ollama.nix
|
||||
./hardware/amdgpu.nix
|
||||
./hardware/audio.nix
|
||||
./hardware/boot.nix
|
||||
./hardware/filesystems.nix
|
||||
./hardware/networking.nix
|
||||
./hardware/peripherals.nix
|
||||
./hardware/samba-client.nix
|
||||
|
||||
./services/flatpak.nix
|
||||
./services/ollama.nix
|
||||
./services/printing.nix
|
||||
./services/ssh.nix
|
||||
|
||||
./sysconfig/desktop-environment.nix
|
||||
./sysconfig/fonts.nix
|
||||
./sysconfig/gaming.nix
|
||||
./sysconfig/localization.nix
|
||||
./sysconfig/nixos.nix
|
||||
./sysconfig/user.nix
|
||||
./sysconfig/ydotool.nix
|
||||
];
|
||||
|
||||
home-manager.backupFileExtension = "backup";
|
||||
|
||||
# Configure user
|
||||
programs.zsh.enable = true;
|
||||
users.users.joey = {
|
||||
isNormalUser = true;
|
||||
shell = pkgs.zsh;
|
||||
description = "joey";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
openssh.authorizedKeys.keys = let
|
||||
authorizedKeys = pkgs.fetchurl {
|
||||
url = "https://github.com/Jafner.keys";
|
||||
sha256 = "1i3Vs6mPPl965g3sRmbXGzx6zQBs5geBCgNx2zfpjF4=";
|
||||
};
|
||||
in pkgs.lib.splitString "\n" (builtins.readFile authorizedKeys);
|
||||
};
|
||||
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
remotes = [ { name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; } ];
|
||||
};
|
||||
|
||||
time.timeZone = "America/Los_Angeles";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
# Enable passwordless sudo
|
||||
security.sudo = {
|
||||
enable = true;
|
||||
extraRules = [{
|
||||
commands = [
|
||||
{
|
||||
command = "ALL";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
];
|
||||
groups = [ "wheel" ];
|
||||
}];
|
||||
};
|
||||
|
||||
# Enable SSH server with exclusively key-based auth
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings.PasswordAuthentication = false;
|
||||
settings.KbdInteractiveAuthentication = false;
|
||||
};
|
||||
|
||||
# Configure system packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
networkmanagerapplet
|
||||
];
|
||||
|
||||
# Configure mouse and touchpad
|
||||
services.libinput = {
|
||||
enable = true;
|
||||
mouse.naturalScrolling = true;
|
||||
touchpad.naturalScrolling = true;
|
||||
};
|
||||
|
||||
# Enable flakes
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
# Configure bootloader
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# Configure networking
|
||||
networking.hostName = "joey-desktop-nixos";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Disable systemd's getty and autovt on tty1
|
||||
systemd.services = {
|
||||
"getty@tty1".enable = false;
|
||||
"autovt@tty1".enable = false;
|
||||
};
|
||||
|
||||
# Enable printing service
|
||||
services.printing.enable = true;
|
||||
|
||||
# Configure audio
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
|
||||
# Configure XDG
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.wlr.enable = true;
|
||||
xdg.portal.extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
programs.steam.enable = true;
|
||||
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
extraPackages = [];
|
||||
};
|
||||
hardware.amdgpu = {
|
||||
amdvlk.enable = true;
|
||||
opencl.enable = true;
|
||||
};
|
||||
|
||||
|
||||
# Configure displayManager
|
||||
services.displayManager = {
|
||||
enable = true;
|
||||
autoLogin.enable = true;
|
||||
autoLogin.user = "joey";
|
||||
sddm = {
|
||||
enable = true;
|
||||
autoNumlock = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Configure X11 server
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
excludePackages = [ pkgs.xterm ];
|
||||
xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
};
|
||||
|
||||
# DO NOT CHANGE
|
||||
system.stateVersion = "24.11";
|
||||
|
@ -1,47 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/e29ec340-6231-4afe-91a8-aaa2da613282";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/CC5A-CDFE";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
fileSystems."/mnt/fedora" =
|
||||
{ device = "/dev/disk/by-uuid/15454185-1268-4559-a074-bb154dc20a93";
|
||||
fsType = "btrfs";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/73e8e737-1c5c-4ead-80c6-e616be538145"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp4s0f0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp4s0f1.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp7s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
16
dotfiles/nixos/desktop/hardware/amdgpu.nix
Normal file
16
dotfiles/nixos/desktop/hardware/amdgpu.nix
Normal file
@ -0,0 +1,16 @@
|
||||
{ pkgs, ... }: {
|
||||
hardware = {
|
||||
amdgpu.amdvlk.enable = false;
|
||||
graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
rocmPackages.rocm-smi
|
||||
rocmPackages.rocminfo
|
||||
];
|
||||
environment.variables = {
|
||||
AMD_VULKAN_ICD = "RADV";
|
||||
};
|
||||
}
|
12
dotfiles/nixos/desktop/hardware/audio.nix
Normal file
12
dotfiles/nixos/desktop/hardware/audio.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{ ... }: {
|
||||
# Configure audio
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
}
|
18
dotfiles/nixos/desktop/hardware/boot.nix
Normal file
18
dotfiles/nixos/desktop/hardware/boot.nix
Normal file
@ -0,0 +1,18 @@
|
||||
{ pkgs, ... }: {
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
hardware.cpu.amd.updateMicrocode = true;
|
||||
boot = {
|
||||
#kernelPackages = pkgs.linuxKernel.kernels.linux_xanmod_latest
|
||||
kernelPackages = pkgs.linuxPackages_6_11;
|
||||
initrd = {
|
||||
availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" ];
|
||||
kernelModules = [ ];
|
||||
};
|
||||
kernelModules = [ "amdgpu" "kvm-amd" ];
|
||||
extraModulePackages = [ ];
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
};
|
||||
}
|
19
dotfiles/nixos/desktop/hardware/filesystems.nix
Normal file
19
dotfiles/nixos/desktop/hardware/filesystems.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ ... }: {
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/e29ec340-6231-4afe-91a8-aaa2da613282";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/CC5A-CDFE";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
fileSystems."/mnt/fedora" = {
|
||||
device = "/dev/disk/by-uuid/15454185-1268-4559-a074-bb154dc20a93";
|
||||
fsType = "btrfs";
|
||||
};
|
||||
|
||||
swapDevices = [ { device = "/dev/disk/by-uuid/73e8e737-1c5c-4ead-80c6-e616be538145"; } ];
|
||||
}
|
11
dotfiles/nixos/desktop/hardware/networking.nix
Normal file
11
dotfiles/nixos/desktop/hardware/networking.nix
Normal file
@ -0,0 +1,11 @@
|
||||
{ pkgs, lib, ... }: {
|
||||
networking = {
|
||||
hostName = "joey-desktop-nixos";
|
||||
networkmanager.enable = true;
|
||||
useDHCP = lib.mkDefault true;
|
||||
};
|
||||
# Configure system packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
networkmanagerapplet
|
||||
];
|
||||
}
|
25
dotfiles/nixos/desktop/hardware/peripherals.nix
Normal file
25
dotfiles/nixos/desktop/hardware/peripherals.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{ pkgs, ... }: {
|
||||
# Configure mouse and touchpad
|
||||
services.libinput = {
|
||||
enable = true;
|
||||
mouse.naturalScrolling = true;
|
||||
touchpad.naturalScrolling = true;
|
||||
};
|
||||
services.goxlr-utility.enable = true;
|
||||
hardware.wooting.enable = true;
|
||||
hardware.xpadneo.enable = true;
|
||||
hardware.openrazer = {
|
||||
enable = true;
|
||||
users = [ "joey" ];
|
||||
batteryNotifier = {
|
||||
enable = true;
|
||||
frequency = 600;
|
||||
percentage = 40;
|
||||
};
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
razergenie
|
||||
gamepad-tool
|
||||
linuxKernel.packages.linux_6_11.xpadneo
|
||||
];
|
||||
}
|
7
dotfiles/nixos/desktop/services/flatpak.nix
Normal file
7
dotfiles/nixos/desktop/services/flatpak.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{ ... }: {
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
remotes = [ { name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; } ];
|
||||
};
|
||||
}
|
4
dotfiles/nixos/desktop/services/printing.nix
Normal file
4
dotfiles/nixos/desktop/services/printing.nix
Normal file
@ -0,0 +1,4 @@
|
||||
{ ... }: {
|
||||
# Enable printing service
|
||||
services.printing.enable = true;
|
||||
}
|
8
dotfiles/nixos/desktop/services/ssh.nix
Normal file
8
dotfiles/nixos/desktop/services/ssh.nix
Normal file
@ -0,0 +1,8 @@
|
||||
{ ... }: {
|
||||
# Enable SSH server with exclusively key-based auth
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings.PasswordAuthentication = false;
|
||||
settings.KbdInteractiveAuthentication = false;
|
||||
};
|
||||
}
|
60
dotfiles/nixos/desktop/sysconfig/desktop-environment.nix
Normal file
60
dotfiles/nixos/desktop/sysconfig/desktop-environment.nix
Normal file
@ -0,0 +1,60 @@
|
||||
{ pkgs, ... }: {
|
||||
programs.kdeconnect.enable = true;
|
||||
environment.systemPackages = with pkgs; [ kdePackages.kcalc wl-color-picker ];
|
||||
environment.plasma6.excludePackages = with pkgs.kdePackages; [
|
||||
elisa
|
||||
kate
|
||||
okular
|
||||
discover
|
||||
];
|
||||
# Disable systemd's getty and autovt on tty1
|
||||
systemd.services = {
|
||||
"getty@tty1".enable = false;
|
||||
"autovt@tty1".enable = false;
|
||||
};
|
||||
|
||||
# Configure displayManager
|
||||
services.displayManager = {
|
||||
enable = true;
|
||||
defaultSession = "plasma";
|
||||
autoLogin.enable = true;
|
||||
autoLogin.user = "joey";
|
||||
sddm = {
|
||||
enable = true;
|
||||
autoNumlock = true;
|
||||
wayland.enable = true;
|
||||
wayland.compositor = "kwin";
|
||||
};
|
||||
};
|
||||
|
||||
# Configure desktopManager
|
||||
services.desktopManager = {
|
||||
plasma6.enable = true;
|
||||
};
|
||||
|
||||
# Configure X11 server
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
videoDrivers = [ "amdgpu" ];
|
||||
excludePackages = [ pkgs.xterm ];
|
||||
xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
};
|
||||
|
||||
# Configure xwayland
|
||||
programs.xwayland = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Configure XDG
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
|
||||
}
|
22
dotfiles/nixos/desktop/sysconfig/gaming.nix
Normal file
22
dotfiles/nixos/desktop/sysconfig/gaming.nix
Normal file
@ -0,0 +1,22 @@
|
||||
{ pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
steam
|
||||
steam-run
|
||||
lutris-unwrapped
|
||||
protonup-ng
|
||||
vulkan-tools
|
||||
mangohud
|
||||
];
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [];
|
||||
};
|
||||
programs.gamescope = {
|
||||
enable = true;
|
||||
capSysNice = false;
|
||||
};
|
||||
programs.gamemode = {
|
||||
enable = true;
|
||||
enableRenice = true;
|
||||
};
|
||||
}
|
15
dotfiles/nixos/desktop/sysconfig/localization.nix
Normal file
15
dotfiles/nixos/desktop/sysconfig/localization.nix
Normal file
@ -0,0 +1,15 @@
|
||||
{ ... }: {
|
||||
time.timeZone = "America/Los_Angeles";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
}
|
10
dotfiles/nixos/desktop/sysconfig/nixos.nix
Normal file
10
dotfiles/nixos/desktop/sysconfig/nixos.nix
Normal file
@ -0,0 +1,10 @@
|
||||
{ pkgs, lib, ... }: {
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
libraries = with pkgs; [ ];
|
||||
};
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
home-manager.backupFileExtension = "backup";
|
||||
}
|
30
dotfiles/nixos/desktop/sysconfig/user.nix
Normal file
30
dotfiles/nixos/desktop/sysconfig/user.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ pkgs, ... }: {
|
||||
# Enable passwordless sudo
|
||||
security.sudo = {
|
||||
enable = true;
|
||||
extraRules = [{
|
||||
commands = [
|
||||
{
|
||||
command = "ALL";
|
||||
options = [ "NOPASSWD" ];
|
||||
}
|
||||
];
|
||||
groups = [ "wheel" ];
|
||||
}];
|
||||
};
|
||||
|
||||
# Configure user
|
||||
programs.zsh.enable = true;
|
||||
users.users.joey = {
|
||||
isNormalUser = true;
|
||||
shell = pkgs.zsh;
|
||||
description = "joey";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
openssh.authorizedKeys.keys = let
|
||||
authorizedKeys = pkgs.fetchurl {
|
||||
url = "https://github.com/Jafner.keys";
|
||||
sha256 = "1i3Vs6mPPl965g3sRmbXGzx6zQBs5geBCgNx2zfpjF4=";
|
||||
};
|
||||
in pkgs.lib.splitString "\n" (builtins.readFile authorizedKeys);
|
||||
};
|
||||
}
|
0
dotfiles/nixos/installer/configuration.nix
Normal file
0
dotfiles/nixos/installer/configuration.nix
Normal file
0
dotfiles/pubkeys/gpg/joey.desktop@jafner.net.pub
Normal file
0
dotfiles/pubkeys/gpg/joey.desktop@jafner.net.pub
Normal file
1
dotfiles/pubkeys/ssh/joey.desktop@jafner.net.pub
Normal file
1
dotfiles/pubkeys/ssh/joey.desktop@jafner.net.pub
Normal file
@ -0,0 +1 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMbzncsWNWxoDSqeva/ZoGHv32A0ggUMWfzx2Gz6Kmkk joey.desktop@jafner.net
|
Loading…
Reference in New Issue
Block a user