clean the shit
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
# Edit this configuration file to define what should be installed on
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in configuration.nix(5) and via `nixos-help`.
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
@@ -14,11 +13,18 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
oreo = pkgs.callPackage ./personalPKGS/oreo.nix { };
|
oreo = pkgs.callPackage ./personalPKGS/oreo.nix { };
|
||||||
in
|
|
||||||
|
|
||||||
|
# Window manager toggles
|
||||||
|
wmAll = window_manager == "all";
|
||||||
|
useRiver = window_manager == "river" || wmAll;
|
||||||
|
useNiri = window_manager == "niri" || wmAll;
|
||||||
|
useHypr = window_manager == "hyprland" || wmAll;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
|
##############################################################################
|
||||||
|
# Imports
|
||||||
|
##############################################################################
|
||||||
imports = [
|
imports = [
|
||||||
# Include the results of the hardware scan.
|
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./system/hardware.nix
|
./system/hardware.nix
|
||||||
./system/boot.nix
|
./system/boot.nix
|
||||||
@@ -30,49 +36,51 @@ in
|
|||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
inputs.niri.nixosModules.niri
|
inputs.niri.nixosModules.niri
|
||||||
];
|
];
|
||||||
# niri settings
|
|
||||||
nix = {
|
##############################################################################
|
||||||
settings = {
|
# Nix settings
|
||||||
experimental-features = [
|
##############################################################################
|
||||||
"nix-command"
|
nix.settings = {
|
||||||
"flakes"
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
];
|
|
||||||
build-dir = "/var/tmp";
|
build-dir = "/var/tmp";
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Desktop / WM
|
||||||
|
##############################################################################
|
||||||
|
programs.river.enable = useRiver;
|
||||||
|
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
# style = "gtk2";
|
||||||
|
platformTheme = "qt5ct";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
#time.timeZone = "Europe/Dublin";
|
|
||||||
#programs.river.enable = true;
|
|
||||||
#programs.niri.enable = true;
|
|
||||||
#programs.niri.package = pkgs.niri-stable;
|
|
||||||
#nixpkgs.overlays = [ inputs.niri.overlays.niri ];
|
|
||||||
#programs.hyprland.enable = true;
|
|
||||||
programs.river.enable = window_manager == "river" || window_manager == "all";
|
|
||||||
qt.enable = true;
|
|
||||||
#qt.style = "gtk2";
|
|
||||||
qt.platformTheme = "qt5ct";
|
|
||||||
|
|
||||||
xdg.menus.enable = true;
|
xdg.menus.enable = true;
|
||||||
#shitty dolphin shit coz fuck that is why
|
|
||||||
environment.etc."/xdg/menus/applications.menu".text = builtins.readFile "${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
|
|
||||||
|
|
||||||
|
# Work around Dolphin menu oddities: force Plasma menu definition
|
||||||
|
environment.etc."/xdg/menus/applications.menu".text =
|
||||||
|
builtins.readFile "${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
|
||||||
|
|
||||||
|
# Niri (via overlay)
|
||||||
nixpkgs.overlays = [ inputs.niri.overlays.niri ];
|
nixpkgs.overlays = [ inputs.niri.overlays.niri ];
|
||||||
programs.niri = {
|
programs.niri = {
|
||||||
enable = window_manager == "niri" || window_manager == "all";
|
enable = useNiri;
|
||||||
package = pkgs.niri-stable; # Only needed if not provided by the overlay
|
package = pkgs.niri-stable; # Only needed if not provided by the overlay
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.hyprland.enable = window_manager == "hyprland" || window_manager == "all";
|
# Hyprland
|
||||||
# Configure keymap in X11
|
programs.hyprland.enable = useHypr;
|
||||||
|
|
||||||
|
# X11 base (kept enabled for keymap + DM if needed)
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
xkb = {
|
xkb = {
|
||||||
layout = "ie";
|
layout = "ie";
|
||||||
variant = "";
|
variant = "";
|
||||||
};
|
};
|
||||||
enable = true;
|
|
||||||
# displayManager.lightdm = {
|
# displayManager.lightdm = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# greeters.gtk = {
|
# greeters.gtk = {
|
||||||
@@ -85,27 +93,40 @@ in
|
|||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# greetd + tuigreet
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
restart = true;
|
restart = true;
|
||||||
settings = {
|
useTextGreeter = true;
|
||||||
default_session = {
|
settings.default_session = {
|
||||||
command = "${lib.getExe pkgs.greetd.tuigreet} --window-padding 1 --time --time-format '%R - %F' --remember --remember-session --asterisks";
|
command = "${lib.getExe pkgs.tuigreet} --window-padding 1 --time --time-format '%R - %F' --remember --remember-session --asterisks";
|
||||||
user = "greeter";
|
user = "greeter";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Security / PolicyKit / PAM
|
||||||
|
##############################################################################
|
||||||
|
security = {
|
||||||
|
rtkit.enable = true;
|
||||||
|
polkit.enable = true;
|
||||||
|
pam.services = {
|
||||||
|
swaylock = { };
|
||||||
|
greetd.enableGnomeKeyring = true;
|
||||||
|
greetd.kwallet.enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
##############################################################################
|
||||||
security.polkit = {
|
# Environment
|
||||||
enable = true;
|
##############################################################################
|
||||||
#package = pkgs.polkit_gnome;
|
environment = {
|
||||||
};
|
sessionVariables = {
|
||||||
environment.sessionVariables = {
|
|
||||||
ZDOTDIR = "$HOME/.config/zsh";
|
ZDOTDIR = "$HOME/.config/zsh";
|
||||||
};
|
};
|
||||||
environment.pathsToLink = [ "/share/zsh" ];
|
pathsToLink = [ "/share/zsh" ];
|
||||||
environment.variables = {
|
variables = {
|
||||||
# VAAPI and VDPAU config for accelerated video.
|
# VAAPI and VDPAU config for accelerated video.
|
||||||
# See https://wiki.archlinux.org/index.php/Hardware_video_acceleration
|
# See https://wiki.archlinux.org/index.php/Hardware_video_acceleration
|
||||||
VDPAU_DRIVER = "radeonsi";
|
VDPAU_DRIVER = "radeonsi";
|
||||||
@@ -115,110 +136,69 @@ in
|
|||||||
# XDG_CURRENT_DESKTOP = "hyprland";
|
# XDG_CURRENT_DESKTOP = "hyprland";
|
||||||
# QT_QPA_PLATFORMTHEME = "qt6ct";
|
# QT_QPA_PLATFORMTHEME = "qt6ct";
|
||||||
};
|
};
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
||||||
users.users.mrfluffy = {
|
|
||||||
isNormalUser = true;
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
createHome = true;
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
"networkmanager"
|
|
||||||
"video"
|
|
||||||
"render"
|
|
||||||
"docker"
|
|
||||||
"libvirt"
|
|
||||||
"input"
|
|
||||||
]; # Enable ‘sudo’ for the user.
|
|
||||||
packages = with pkgs; [
|
|
||||||
|
|
||||||
];
|
systemPackages = with pkgs; [
|
||||||
};
|
vim
|
||||||
users.users.work = {
|
|
||||||
isNormalUser = true;
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
createHome = true;
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
"networkmanager"
|
|
||||||
"video"
|
|
||||||
"render"
|
|
||||||
"docker"
|
|
||||||
"libvirt"
|
|
||||||
"input"
|
|
||||||
]; # Enable ‘sudo’ for the user.
|
|
||||||
packages = with pkgs; [
|
|
||||||
|
|
||||||
];
|
|
||||||
};
|
|
||||||
users.groups.libvirtd.members = [
|
|
||||||
"mrfluffy"
|
|
||||||
"work"
|
|
||||||
];
|
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
# also pass inputs to home-manager modules
|
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit inputs window_manager systemName;
|
|
||||||
};
|
|
||||||
users = {
|
|
||||||
"mrfluffy" = import ./home/mrfluffy.nix;
|
|
||||||
|
|
||||||
"work" = import ./home/work.nix;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation.docker = {
|
|
||||||
enable = true;
|
|
||||||
storageDriver = lib.mkIf (systemName == "pc") "btrfs";
|
|
||||||
};
|
|
||||||
virtualisation.libvirtd.enable = true;
|
|
||||||
|
|
||||||
# Allow unfree packages
|
|
||||||
nixpkgs = {
|
|
||||||
config = {
|
|
||||||
allowUnfree = true;
|
|
||||||
permittedInsecurePackages = [
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
security.pam.services.swaylock = { };
|
|
||||||
|
|
||||||
security.pam.services.greetd.enableGnomeKeyring = true;
|
|
||||||
security.pam.services.greetd.kwallet.enable = true;
|
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
|
||||||
# $ nix search wget
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
|
||||||
wget
|
wget
|
||||||
neovim
|
neovim
|
||||||
];
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
##############################################################################
|
||||||
# started in user sessions.
|
# Users
|
||||||
# programs.mtr.enable = true;
|
##############################################################################
|
||||||
# programs.gnupg.agent = {
|
users = {
|
||||||
# enable = true;
|
users.mrfluffy = {
|
||||||
# enableSSHSupport = true;
|
isNormalUser = true;
|
||||||
# };
|
shell = pkgs.zsh;
|
||||||
|
createHome = true;
|
||||||
|
extraGroups = [ "wheel" "networkmanager" "video" "render" "docker" "libvirt" "input" ];
|
||||||
|
packages = with pkgs; [ ];
|
||||||
|
};
|
||||||
|
|
||||||
# List services that you want to enable:
|
users.work = {
|
||||||
|
isNormalUser = true;
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
createHome = true;
|
||||||
|
extraGroups = [ "wheel" "networkmanager" "video" "render" "docker" "libvirt" "input" ];
|
||||||
|
packages = with pkgs; [ ];
|
||||||
|
};
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
groups.libvirtd.members = [ "mrfluffy" "work" ];
|
||||||
#services.openssh.enable = true;
|
};
|
||||||
|
|
||||||
# Open ports in the firewall.
|
##############################################################################
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
# Home-Manager
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
##############################################################################
|
||||||
# Or disable the firewall altogether.
|
home-manager = {
|
||||||
# networking.firewall.enable = false;
|
extraSpecialArgs = { inherit inputs window_manager systemName; };
|
||||||
|
users = {
|
||||||
|
mrfluffy = import ./home/mrfluffy.nix;
|
||||||
|
work = import ./home/work.nix;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
##############################################################################
|
||||||
# settings for stateful data, like file locations and database versions
|
# Virtualisation
|
||||||
# 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.
|
virtualisation = {
|
||||||
# Before changing this value read the documentation for this option
|
docker = {
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
enable = true;
|
||||||
|
storageDriver = lib.mkIf (systemName == "pc") "btrfs";
|
||||||
|
};
|
||||||
|
libvirtd.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Nixpkgs policy
|
||||||
|
##############################################################################
|
||||||
|
nixpkgs.config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
permittedInsecurePackages = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# State version
|
||||||
|
##############################################################################
|
||||||
system.stateVersion = "24.11"; # Did you read the comment?
|
system.stateVersion = "24.11"; # Did you read the comment?
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,58 +6,16 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
in
|
|
||||||
# hyprlock = pkgs.callPackage ../../universal/personalPKGS/hyprlock.nix {};
|
# hyprlock = pkgs.callPackage ../../universal/personalPKGS/hyprlock.nix {};
|
||||||
# hypridle = pkgs.callPackage ../../universal/personalPKGS/hypridle.nix {};
|
# hypridle = pkgs.callPackage ../../universal/personalPKGS/hypridle.nix {};
|
||||||
{
|
|
||||||
imports = [
|
defaultProfile = {
|
||||||
inputs.zen-browser.homeModules.beta
|
|
||||||
];
|
|
||||||
programs.zen-browser = {
|
|
||||||
enable = true;
|
|
||||||
profiles.default = {
|
|
||||||
id = 0;
|
id = 0;
|
||||||
name = "default";
|
name = "default";
|
||||||
isDefault = true;
|
isDefault = true;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
programs.firefox = {
|
|
||||||
enable = true;
|
|
||||||
profiles.default = {
|
|
||||||
id = 0;
|
|
||||||
name = "default";
|
|
||||||
isDefault = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.nix-index.enable = true;
|
anyrunPlugins = with pkgs.anyrun; [
|
||||||
programs.lazygit.enable = true;
|
|
||||||
|
|
||||||
qt.enable = true;
|
|
||||||
#qt.style = "gtk2";
|
|
||||||
#qt.platformTheme = "qt5ct";
|
|
||||||
#imports = [ inputs.anyrun.homeManagerModules.default ];
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
nixpkgs.config.permittedInsecurePackages = [
|
|
||||||
"freeimage-unstable-2021-11-01"
|
|
||||||
"qtwebengine-5.15.19"
|
|
||||||
];
|
|
||||||
programs.vscode = {
|
|
||||||
enable = true;
|
|
||||||
profiles = {
|
|
||||||
default = {
|
|
||||||
extensions = [
|
|
||||||
pkgs.vscode-extensions.platformio.platformio-vscode-ide
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
programs.anyrun = {
|
|
||||||
enable = true;
|
|
||||||
config = {
|
|
||||||
plugins = [
|
|
||||||
# An array of all the plugins you want, which either can be paths to the .so files, or their packages
|
|
||||||
"${pkgs.anyrun}/lib/libapplications.so"
|
"${pkgs.anyrun}/lib/libapplications.so"
|
||||||
"${pkgs.anyrun}/lib/libdictionary.so"
|
"${pkgs.anyrun}/lib/libdictionary.so"
|
||||||
"${pkgs.anyrun}/lib/libsymbols.so"
|
"${pkgs.anyrun}/lib/libsymbols.so"
|
||||||
@@ -65,15 +23,40 @@ in
|
|||||||
"${pkgs.anyrun}/lib/libtranslate.so"
|
"${pkgs.anyrun}/lib/libtranslate.so"
|
||||||
"${pkgs.anyrun}/lib/libwebsearch.so"
|
"${pkgs.anyrun}/lib/libwebsearch.so"
|
||||||
];
|
];
|
||||||
x = {
|
in
|
||||||
fraction = 0.5;
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.zen-browser.homeModules.beta
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
zen-browser = {
|
||||||
|
enable = true;
|
||||||
|
profiles.default = defaultProfile;
|
||||||
};
|
};
|
||||||
y = {
|
|
||||||
fraction = 0.3;
|
firefox = {
|
||||||
|
enable = true;
|
||||||
|
profiles.default = defaultProfile;
|
||||||
};
|
};
|
||||||
width = {
|
|
||||||
fraction = 0.3;
|
nix-index.enable = true;
|
||||||
|
lazygit.enable = true;
|
||||||
|
|
||||||
|
vscode = {
|
||||||
|
enable = true;
|
||||||
|
profiles.default.extensions = [
|
||||||
|
pkgs.vscode-extensions.platformio.platformio-vscode-ide
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
anyrun = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
plugins = anyrunPlugins;
|
||||||
|
x.fraction = 0.5;
|
||||||
|
y.fraction = 0.3;
|
||||||
|
width.fraction = 0.3;
|
||||||
hideIcons = false;
|
hideIcons = false;
|
||||||
ignoreExclusiveZones = false;
|
ignoreExclusiveZones = false;
|
||||||
layer = "overlay";
|
layer = "overlay";
|
||||||
@@ -91,15 +74,6 @@ in
|
|||||||
extraConfigFiles."websearch.ron".text = ''
|
extraConfigFiles."websearch.ron".text = ''
|
||||||
Config(
|
Config(
|
||||||
prefix: "",
|
prefix: "",
|
||||||
// Options: Google, Ecosia, Bing, DuckDuckGo, Custom
|
|
||||||
//
|
|
||||||
// Custom engines can be defined as such:
|
|
||||||
// Custom(
|
|
||||||
// name: "Searx",
|
|
||||||
// url: "searx.be/?q={}",
|
|
||||||
// )
|
|
||||||
//
|
|
||||||
// NOTE: `{}` is replaced by the search query and `https://` is automatically added in front.
|
|
||||||
engines: [Google]
|
engines: [Google]
|
||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
@@ -122,10 +96,8 @@ in
|
|||||||
max_entries: 3,
|
max_entries: 3,
|
||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
|
|
||||||
extraConfigFiles."symbols.ron".text = ''
|
extraConfigFiles."symbols.ron".text = ''
|
||||||
Config (
|
Config (
|
||||||
// The prefix that the search needs to begin with to yield symbol results
|
|
||||||
prefix: "",
|
prefix: "",
|
||||||
// Custom user defined symbols to be included along the unicode symbols
|
// Custom user defined symbols to be included along the unicode symbols
|
||||||
symbols: {
|
symbols: {
|
||||||
@@ -136,129 +108,176 @@ in
|
|||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
qt.enable = true;
|
||||||
|
# qt.style = "gtk2";
|
||||||
|
# qt.platformTheme = "qt5ct";
|
||||||
|
# imports = [ inputs.anyrun.homeManagerModules.default ];
|
||||||
|
|
||||||
|
nixpkgs = {
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
permittedInsecurePackages = [
|
||||||
|
"freeimage-unstable-2021-11-01"
|
||||||
|
"qtwebengine-5.15.19"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
services.kdeconnect.enable = true;
|
services.kdeconnect.enable = true;
|
||||||
|
|
||||||
# programs.obs-studio = {
|
|
||||||
# enable = true;
|
|
||||||
# plugins = with pkgs.obs-studio-plugins; [
|
|
||||||
# wlrobs
|
|
||||||
# obs-backgroundremoval
|
|
||||||
# obs-pipewire-audio-capture
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
############################
|
||||||
# # Adds the 'hello' command to your environment. It prints a friendly
|
# Shells & Terminals
|
||||||
# # "Hello, world!" when run.
|
############################
|
||||||
# pkgs.hello
|
alacritty
|
||||||
|
|
||||||
# # It is sometimes useful to fine-tune packages, for example, by applying
|
|
||||||
# # overrides. You can do that directly here, just don't forget the
|
|
||||||
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
|
|
||||||
# # fonts?
|
|
||||||
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
|
|
||||||
|
|
||||||
# # 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}!"
|
|
||||||
# '')
|
|
||||||
zsh
|
zsh
|
||||||
zoom-us
|
|
||||||
rink
|
############################
|
||||||
firefox
|
# CLI Shit
|
||||||
btop
|
############################
|
||||||
libreoffice-fresh
|
atuin
|
||||||
rustup
|
|
||||||
rustc
|
############################
|
||||||
macchina
|
# System Utilities
|
||||||
hyprpaper
|
############################
|
||||||
#xwaylandvideobridge
|
app2unit
|
||||||
|
brightnessctl
|
||||||
|
ddcutil
|
||||||
duf
|
duf
|
||||||
grim
|
libnotify
|
||||||
slurp
|
lm_sensors
|
||||||
swappy
|
macchina
|
||||||
heroic
|
|
||||||
gamemode
|
|
||||||
goverlay
|
|
||||||
rm-improved
|
rm-improved
|
||||||
nodejs_20
|
xarchiver
|
||||||
playerctl
|
xdg-user-dirs
|
||||||
pamixer
|
|
||||||
openai-whisper
|
############################
|
||||||
libreoffice
|
# Monitoring & TUI Apps
|
||||||
zathura
|
############################
|
||||||
imv
|
btop
|
||||||
libsixel
|
cava
|
||||||
prismlauncher
|
|
||||||
godot_4
|
############################
|
||||||
wf-recorder
|
# Wayland / Desktop Tools
|
||||||
#jellyfin-media-player
|
############################
|
||||||
|
grim
|
||||||
|
hyprpaper
|
||||||
hyprpicker
|
hyprpicker
|
||||||
mangohud
|
mangohud
|
||||||
#discord
|
|
||||||
mpv
|
|
||||||
rofi
|
rofi
|
||||||
xdg-user-dirs
|
slurp
|
||||||
xarchiver
|
swappy
|
||||||
atuin
|
wf-recorder
|
||||||
blender-hip
|
|
||||||
wineWowPackages.stable
|
############################
|
||||||
gdb
|
# Audio / Media Tools
|
||||||
|
############################
|
||||||
|
openai-whisper
|
||||||
|
pamixer
|
||||||
|
playerctl
|
||||||
alsa-utils
|
alsa-utils
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Browsers & Web
|
||||||
|
############################
|
||||||
brave
|
brave
|
||||||
|
firefox
|
||||||
|
zoom-us
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Communication & Sharing
|
||||||
|
############################
|
||||||
|
element-desktop
|
||||||
|
localsend
|
||||||
slack
|
slack
|
||||||
|
thunderbird
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Documents & Viewers
|
||||||
|
############################
|
||||||
|
libreoffice
|
||||||
|
libreoffice-fresh
|
||||||
|
zathura
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Media Players & Imaging
|
||||||
|
############################
|
||||||
|
imv
|
||||||
|
mpv
|
||||||
|
upscaler
|
||||||
|
youtube-music
|
||||||
|
libsixel
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Development Toolchains
|
||||||
|
############################
|
||||||
|
gdb
|
||||||
|
nodejs_20
|
||||||
|
platformio
|
||||||
|
rustc
|
||||||
|
rustup
|
||||||
zed-editor
|
zed-editor
|
||||||
dualsensectl
|
|
||||||
mangayomi
|
# Language tooling from inputs
|
||||||
scrcpy
|
inputs.qs-qml.packages.${pkgs.system}.qml-ts-mode
|
||||||
|
inputs.qs-qml.packages.${pkgs.system}.tree-sitter-qmljs
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Game Dev / Engines
|
||||||
|
############################
|
||||||
|
blender-hip
|
||||||
|
godot_4
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Emulation
|
||||||
|
############################
|
||||||
fuse
|
fuse
|
||||||
fuse-emulator
|
fuse-emulator
|
||||||
fuse3
|
fuse3
|
||||||
alacritty
|
|
||||||
#inputs.way-inhibitor.packages.${pkgs.system}.default
|
############################
|
||||||
#inputs.zen-browser.packages.${pkgs.system}.twilight
|
# Android Tools
|
||||||
#inputs.quickshell.packages.${pkgs.system}.default
|
############################
|
||||||
inputs.qs-qml.packages.${pkgs.system}.tree-sitter-qmljs
|
|
||||||
inputs.qs-qml.packages.${pkgs.system}.qml-ts-mode
|
|
||||||
protonup-qt
|
|
||||||
ddcutil
|
|
||||||
brightnessctl
|
|
||||||
app2unit
|
|
||||||
cava
|
|
||||||
lm_sensors
|
|
||||||
thunderbird
|
|
||||||
libnotify
|
|
||||||
localsend
|
|
||||||
android-tools
|
android-tools
|
||||||
#grayjay
|
scrcpy
|
||||||
youtube-music
|
|
||||||
inputs.caelestia.packages.${pkgs.system}.caelestia-shell
|
############################
|
||||||
inputs.caelestia-cli.packages.${pkgs.system}.caelestia-cli
|
# Gaming & Launchers
|
||||||
|
############################
|
||||||
|
dualsensectl
|
||||||
|
gamemode
|
||||||
|
goverlay
|
||||||
|
heroic
|
||||||
|
prismlauncher
|
||||||
|
protonup-qt
|
||||||
|
wineWowPackages.stable
|
||||||
|
mangayomi
|
||||||
|
rink
|
||||||
|
|
||||||
|
############################
|
||||||
|
# KDE / File Management
|
||||||
|
############################
|
||||||
|
kdePackages.baloo # new
|
||||||
|
kdePackages.baloo-widgets # new
|
||||||
kdePackages.dolphin
|
kdePackages.dolphin
|
||||||
|
kdePackages.ffmpegthumbs # new
|
||||||
|
kdePackages.kdegraphics-mobipocket # new
|
||||||
|
kdePackages.kdegraphics-thumbnailers # new
|
||||||
|
kdePackages.kdesdk-thumbnailers # new
|
||||||
|
kdePackages.kimageformats # new
|
||||||
kdePackages.kio
|
kdePackages.kio
|
||||||
kdePackages.kio-extras
|
kdePackages.kio-extras
|
||||||
# kdePackages.breeze-icons
|
# kdePackages.breeze-icons
|
||||||
# kdePackages.dolphin-plugins
|
# kdePackages.dolphin-plugins
|
||||||
kdePackages.kdesdk-thumbnailers # new
|
|
||||||
kdePackages.kdegraphics-thumbnailers # new
|
|
||||||
kdePackages.kdegraphics-mobipocket # new
|
|
||||||
kdePackages.kimageformats # new
|
|
||||||
#kdePackages.calligra # new
|
|
||||||
#kdePackages.qtimageformats # new
|
|
||||||
kdePackages.ffmpegthumbs # new
|
|
||||||
#kdePackages.taglib # new
|
|
||||||
kdePackages.baloo # new
|
|
||||||
kdePackages.baloo-widgets # new
|
|
||||||
# kdePackages.kde-cli-tools
|
# kdePackages.kde-cli-tools
|
||||||
# resvg # new
|
# resvg # new
|
||||||
#
|
|
||||||
#platformio
|
|
||||||
platformio
|
|
||||||
element-desktop
|
|
||||||
|
|
||||||
upscaler
|
############################
|
||||||
|
# Blockchain (inputs)
|
||||||
|
############################
|
||||||
|
inputs.caelestia-cli.packages.${pkgs.system}.caelestia-cli
|
||||||
|
inputs.caelestia.packages.${pkgs.system}.caelestia-shell
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,46 +10,43 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
# Core theming & integrations
|
||||||
inputs.nix-colors.homeManagerModules.default
|
inputs.nix-colors.homeManagerModules.default
|
||||||
inputs.stylix.homeModules.stylix
|
inputs.stylix.homeModules.stylix
|
||||||
inputs.nixcord.homeModules.nixcord
|
inputs.nixcord.homeModules.nixcord
|
||||||
# inputs.niri.homeModules.niri
|
# inputs.niri.homeModules.niri
|
||||||
|
|
||||||
|
# Local modules
|
||||||
./sessionVars.nix
|
./sessionVars.nix
|
||||||
|
./stylix.nix
|
||||||
|
./homePkgs.nix
|
||||||
|
./services.nix
|
||||||
|
|
||||||
|
# Dots
|
||||||
../dots/foot.nix
|
../dots/foot.nix
|
||||||
../dots/waybar.nix
|
../dots/waybar.nix
|
||||||
../dots/zsh.nix
|
../dots/zsh.nix
|
||||||
../dots/nixcord.nix
|
../dots/nixcord.nix
|
||||||
../dots/hyprlock.nix
|
../dots/hyprlock.nix
|
||||||
./stylix.nix
|
|
||||||
./homePkgs.nix
|
|
||||||
./services.nix
|
|
||||||
../dots/xdg.nix
|
../dots/xdg.nix
|
||||||
../dots/river.nix
|
../dots/river.nix
|
||||||
../dots/niri.nix
|
../dots/niri.nix
|
||||||
../dots/hyprland.nix
|
../dots/hyprland.nix
|
||||||
../dots/hyprpaper.nix
|
../dots/hyprpaper.nix
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# you can go look here for a list of color schemes https://github.com/tinted-theming/schemes
|
# You can find color schemes at: https://github.com/tinted-theming/schemes
|
||||||
colorScheme = inputs.nix-colors.colorSchemes.hardcore;
|
colorScheme = inputs.nix-colors.colorSchemes.hardcore;
|
||||||
stylix.base16Scheme.base00 = "141414";
|
stylix.base16Scheme.base00 = "141414";
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
|
||||||
# manage.
|
# Home Manager needs a bit of information about you and the paths it should manage.
|
||||||
home.username = "mrfluffy";
|
home.username = "mrfluffy";
|
||||||
home.homeDirectory = "/home/mrfluffy";
|
home.homeDirectory = "/home/mrfluffy";
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
# This determines compatibility with a specific Home Manager release.
|
||||||
# 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.11"; # Please read the comment before changing.
|
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
# Example GTK block (disabled)
|
||||||
# environment.
|
|
||||||
# gtk = {
|
# gtk = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# iconTheme = {
|
# iconTheme = {
|
||||||
@@ -59,43 +56,30 @@ in
|
|||||||
# };
|
# };
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
swaybg
|
############################
|
||||||
|
# Wayland / Desktop tools
|
||||||
|
############################
|
||||||
lswt
|
lswt
|
||||||
|
swaybg
|
||||||
wlr-randr
|
wlr-randr
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Experimental (inputs)
|
||||||
|
############################
|
||||||
# inputs.ladybird.packages."${pkgs.system}".ladybird
|
# inputs.ladybird.packages."${pkgs.system}".ladybird
|
||||||
|
|
||||||
# # Adds the 'hello' command to your environment. It prints a friendly
|
# ##########################
|
||||||
# # "Hello, world!" when run.
|
# Examples (disabled)
|
||||||
|
# ##########################
|
||||||
# pkgs.hello
|
# pkgs.hello
|
||||||
|
|
||||||
# # It is sometimes useful to fine-tune packages, for example, by applying
|
|
||||||
# # overrides. You can do that directly here, just don't forget the
|
|
||||||
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
|
|
||||||
# # fonts?
|
|
||||||
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
|
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
|
||||||
|
|
||||||
# # 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" ''
|
# (pkgs.writeShellScriptBin "my-hello" ''
|
||||||
# echo "Hello, ${config.home.username}!"
|
# echo "Hello, ${config.home.username}!"
|
||||||
# '')
|
# '')
|
||||||
];
|
];
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Dotfiles & static files managed by Home Manager
|
||||||
# plain files is through 'home.file'.
|
|
||||||
home.file = {
|
home.file = {
|
||||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
|
||||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
|
||||||
# # symlink to the Nix store copy.
|
|
||||||
# ".screenrc".source = dotfiles/screenrc;
|
|
||||||
|
|
||||||
# # You can also set the file content immediately.
|
|
||||||
# ".gradle/gradle.properties".text = ''
|
|
||||||
# org.gradle.console=verbose
|
|
||||||
# org.gradle.daemon.idletimeout=3600000
|
|
||||||
# '';
|
|
||||||
#
|
|
||||||
".config/nixpkgs/config.nix".text = ''
|
".config/nixpkgs/config.nix".text = ''
|
||||||
{ allowUnfree = true; }
|
{ allowUnfree = true; }
|
||||||
'';
|
'';
|
||||||
@@ -105,23 +89,17 @@ in
|
|||||||
# ".config/nvim".source = ../../universal/dots/nvim;
|
# ".config/nvim".source = ../../universal/dots/nvim;
|
||||||
"Pictures/Wallpapers".source = ../assets/Wallpapers;
|
"Pictures/Wallpapers".source = ../assets/Wallpapers;
|
||||||
|
|
||||||
|
# ".screenrc".source = dotfiles/screenrc;
|
||||||
|
# ".gradle/gradle.properties".text = ''
|
||||||
|
# org.gradle.console=verbose
|
||||||
|
# org.gradle.daemon.idletimeout=3600000
|
||||||
|
# '';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home Manager can also manage your environment variables through
|
# If you don't manage your shell with Home Manager, remember to source:
|
||||||
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
|
||||||
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
|
||||||
# either
|
|
||||||
#
|
|
||||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
|
||||||
# or
|
|
||||||
#
|
|
||||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
|
||||||
# or
|
|
||||||
#
|
|
||||||
# /etc/profiles/per-user/mrfluffy/etc/profile.d/hm-session-vars.sh
|
# /etc/profiles/per-user/mrfluffy/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|||||||
@@ -7,34 +7,44 @@
|
|||||||
let
|
let
|
||||||
inherit (config.colorScheme) palette;
|
inherit (config.colorScheme) palette;
|
||||||
oreo = pkgs.callPackage ../personalPKGS/oreo.nix { };
|
oreo = pkgs.callPackage ../personalPKGS/oreo.nix { };
|
||||||
|
openSans = {
|
||||||
|
package = pkgs.open-sans;
|
||||||
|
name = "Open Sans";
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autoEnable = false;
|
autoEnable = false;
|
||||||
targets.font-packages.enable = true;
|
|
||||||
#targets.fontconfig.enable = true;
|
targets = {
|
||||||
targets.gtk = {
|
font-packages.enable = true;
|
||||||
|
# fontconfig.enable = true;
|
||||||
|
|
||||||
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
flatpakSupport.enable = true;
|
flatpakSupport.enable = true;
|
||||||
};
|
};
|
||||||
#targets.kde.enable = true;
|
# kde.enable = true;
|
||||||
targets.qt.enable = true;
|
|
||||||
targets.vscode.enable = true;
|
qt.enable = true;
|
||||||
targets.lazygit.enable = true;
|
vscode.enable = true;
|
||||||
targets.foot.enable = true;
|
lazygit.enable = true;
|
||||||
targets.river.enable = true;
|
foot.enable = true;
|
||||||
targets.hyprland.enable = true;
|
river.enable = true;
|
||||||
targets.waybar.enable = true;
|
hyprland.enable = true;
|
||||||
targets.nixcord.enable = true;
|
waybar.enable = true;
|
||||||
targets.zen-browser = {
|
nixcord.enable = true;
|
||||||
|
|
||||||
|
zen-browser = {
|
||||||
enable = true;
|
enable = true;
|
||||||
profileNames = [ "default" ];
|
profileNames = [ "default" ];
|
||||||
};
|
};
|
||||||
targets.firefox = {
|
firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
profileNames = [ "default" ];
|
profileNames = [ "default" ];
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -42,35 +52,20 @@ in
|
|||||||
light = "Reversal-black";
|
light = "Reversal-black";
|
||||||
dark = "Reversal-black-dark";
|
dark = "Reversal-black-dark";
|
||||||
};
|
};
|
||||||
|
|
||||||
polarity = "dark";
|
polarity = "dark";
|
||||||
image = ../assets/Wallpapers/001.jpg;
|
image = ../assets/Wallpapers/001.jpg;
|
||||||
|
|
||||||
base16Scheme = {
|
base16Scheme = {
|
||||||
base00 = "${palette.base00}";
|
inherit (palette)
|
||||||
base01 = "${palette.base01}";
|
base00 base01 base02 base03 base04 base05 base06 base07
|
||||||
base02 = "${palette.base02}";
|
base08 base09 base0A base0B base0C base0D base0E base0F;
|
||||||
base03 = "${palette.base03}";
|
|
||||||
base04 = "${palette.base04}";
|
|
||||||
base05 = "${palette.base05}";
|
|
||||||
base06 = "${palette.base06}";
|
|
||||||
base07 = "${palette.base07}";
|
|
||||||
base08 = "${palette.base08}";
|
|
||||||
base09 = "${palette.base09}";
|
|
||||||
base0A = "${palette.base0A}";
|
|
||||||
base0B = "${palette.base0B}";
|
|
||||||
base0C = "${palette.base0C}";
|
|
||||||
base0D = "${palette.base0D}";
|
|
||||||
base0E = "${palette.base0E}";
|
|
||||||
base0F = "${palette.base0F}";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
fonts = {
|
fonts = {
|
||||||
serif = {
|
serif = openSans;
|
||||||
package = pkgs.open-sans;
|
sansSerif = openSans;
|
||||||
name = "Open Sans";
|
|
||||||
};
|
|
||||||
sansSerif = {
|
|
||||||
package = pkgs.open-sans;
|
|
||||||
name = "Open Sans";
|
|
||||||
};
|
|
||||||
# monospace = {
|
# monospace = {
|
||||||
# package = pkgs.dejavu_fonts;
|
# package = pkgs.dejavu_fonts;
|
||||||
# name = "DejaVu Sans Mono";
|
# name = "DejaVu Sans Mono";
|
||||||
@@ -90,6 +85,7 @@ in
|
|||||||
terminal = 16;
|
terminal = 16;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
cursor = {
|
cursor = {
|
||||||
package = oreo.override { colors = [ "oreo_spark_pink_cursors" ]; };
|
package = oreo.override { colors = [ "oreo_spark_pink_cursors" ]; };
|
||||||
name = "oreo_spark_pink_cursors";
|
name = "oreo_spark_pink_cursors";
|
||||||
|
|||||||
@@ -10,19 +10,24 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
# Core theming & apps
|
||||||
inputs.nix-colors.homeManagerModules.default
|
inputs.nix-colors.homeManagerModules.default
|
||||||
inputs.stylix.homeModules.stylix
|
inputs.stylix.homeModules.stylix
|
||||||
inputs.nixcord.homeModules.nixcord
|
inputs.nixcord.homeModules.nixcord
|
||||||
# inputs.niri.homeModules.niri
|
# inputs.niri.homeModules.niri
|
||||||
|
|
||||||
|
# Local modules
|
||||||
./sessionVars.nix
|
./sessionVars.nix
|
||||||
|
./stylix.nix
|
||||||
|
./homePkgs.nix
|
||||||
|
./services.nix
|
||||||
|
|
||||||
|
# Dots
|
||||||
../dots/foot.nix
|
../dots/foot.nix
|
||||||
../dots/waybar.nix
|
../dots/waybar.nix
|
||||||
../dots/zsh.nix
|
../dots/zsh.nix
|
||||||
../dots/nixcord.nix
|
../dots/nixcord.nix
|
||||||
../dots/hyprlock.nix
|
../dots/hyprlock.nix
|
||||||
./stylix.nix
|
|
||||||
./homePkgs.nix
|
|
||||||
./services.nix
|
|
||||||
../dots/xdg.nix
|
../dots/xdg.nix
|
||||||
../dots/river.nix
|
../dots/river.nix
|
||||||
../dots/niri.nix
|
../dots/niri.nix
|
||||||
@@ -30,25 +35,18 @@ in
|
|||||||
../dots/hyprpaper.nix
|
../dots/hyprpaper.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# you can go look here for a list of color schemes https://github.com/tinted-theming/schemes
|
# You can find color schemes at: https://github.com/tinted-theming/schemes
|
||||||
colorScheme = inputs.nix-colors.colorSchemes.hardcore;
|
colorScheme = inputs.nix-colors.colorSchemes.hardcore;
|
||||||
stylix.base16Scheme.base00 = "141414";
|
stylix.base16Scheme.base00 = "141414";
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
|
||||||
# manage.
|
# Home Manager user information
|
||||||
home.username = "work";
|
home.username = "work";
|
||||||
home.homeDirectory = "/home/work";
|
home.homeDirectory = "/home/work";
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
# This determines compatibility with a specific Home Manager release.
|
||||||
# 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.11"; # Please read the comment before changing.
|
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
# Example GTK block (disabled)
|
||||||
# environment.
|
|
||||||
# gtk = {
|
# gtk = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# iconTheme = {
|
# iconTheme = {
|
||||||
@@ -58,45 +56,30 @@ in
|
|||||||
# };
|
# };
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
swaybg
|
############################
|
||||||
|
# Wayland / Desktop tools
|
||||||
|
############################
|
||||||
lswt
|
lswt
|
||||||
|
swaybg
|
||||||
wlr-randr
|
wlr-randr
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Browsers
|
||||||
|
############################
|
||||||
brave
|
brave
|
||||||
|
|
||||||
# swaynotificationcenter
|
# swaynotificationcenter
|
||||||
# inputs.ladybird.packages."${pkgs.system}".ladybird
|
# inputs.ladybird.packages."${pkgs.system}".ladybird
|
||||||
|
|
||||||
# # Adds the 'hello' command to your environment. It prints a friendly
|
|
||||||
# # "Hello, world!" when run.
|
|
||||||
# pkgs.hello
|
# pkgs.hello
|
||||||
|
|
||||||
# # It is sometimes useful to fine-tune packages, for example, by applying
|
|
||||||
# # overrides. You can do that directly here, just don't forget the
|
|
||||||
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
|
|
||||||
# # fonts?
|
|
||||||
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
|
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
|
||||||
|
|
||||||
# # 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" ''
|
# (pkgs.writeShellScriptBin "my-hello" ''
|
||||||
# echo "Hello, ${config.home.username}!"
|
# echo "Hello, ${config.home.username}!"
|
||||||
# '')
|
# '')
|
||||||
];
|
];
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Dotfiles & static files managed by Home Manager
|
||||||
# plain files is through 'home.file'.
|
|
||||||
home.file = {
|
home.file = {
|
||||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
|
||||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
|
||||||
# # symlink to the Nix store copy.
|
|
||||||
# ".screenrc".source = dotfiles/screenrc;
|
|
||||||
|
|
||||||
# # You can also set the file content immediately.
|
|
||||||
# ".gradle/gradle.properties".text = ''
|
|
||||||
# org.gradle.console=verbose
|
|
||||||
# org.gradle.daemon.idletimeout=3600000
|
|
||||||
# '';
|
|
||||||
#
|
|
||||||
".config/nixpkgs/config.nix".text = ''
|
".config/nixpkgs/config.nix".text = ''
|
||||||
{ allowUnfree = true; }
|
{ allowUnfree = true; }
|
||||||
'';
|
'';
|
||||||
@@ -106,23 +89,17 @@ in
|
|||||||
# ".config/nvim".source = ../../universal/dots/nvim;
|
# ".config/nvim".source = ../../universal/dots/nvim;
|
||||||
"Pictures/Wallpapers".source = ../assets/Wallpapers;
|
"Pictures/Wallpapers".source = ../assets/Wallpapers;
|
||||||
|
|
||||||
|
# ".screenrc".source = dotfiles/screenrc;
|
||||||
|
# ".gradle/gradle.properties".text = ''
|
||||||
|
# org.gradle.console=verbose
|
||||||
|
# org.gradle.daemon.idletimeout=3600000
|
||||||
|
# '';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home Manager can also manage your environment variables through
|
# If you don't manage your shell with Home Manager, remember to source:
|
||||||
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
|
||||||
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
|
||||||
# either
|
|
||||||
#
|
|
||||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
|
||||||
# or
|
|
||||||
#
|
|
||||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
|
||||||
# or
|
|
||||||
#
|
|
||||||
# /etc/profiles/per-user/mrfluffy/etc/profile.d/hm-session-vars.sh
|
# /etc/profiles/per-user/mrfluffy/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|||||||
@@ -6,51 +6,52 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
isLaptop = systemName == "laptop";
|
||||||
|
isPc = systemName == "pc";
|
||||||
|
|
||||||
|
initrdBaseModules = [ "btusb" ];
|
||||||
|
initrdLPModules = [ "kvm" ]; # for laptop & pc
|
||||||
|
|
||||||
|
kernelBaseModules = [ "v4l2loopback" ];
|
||||||
|
|
||||||
|
kernelBaseParams = [ ];
|
||||||
|
kernelLPParams = [ "ipv6e=1" ]; # for laptop & pc
|
||||||
|
kernelLaptopOnly = [ "i915.force_probe=46a6" ];
|
||||||
|
kernelPcOnly = [ "video=2560x1440x32" ];
|
||||||
|
in
|
||||||
{
|
{
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot = {
|
boot = {
|
||||||
loader = {
|
loader = {
|
||||||
systemd-boot = {
|
systemd-boot.enable = true;
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
initrd.kernelModules = lib.mkMerge [
|
initrd.kernelModules = lib.mkMerge [
|
||||||
[
|
initrdBaseModules
|
||||||
"btusb"
|
(lib.mkIf (isLaptop || isPc) initrdLPModules)
|
||||||
]
|
|
||||||
(lib.mkIf (systemName == "laptop") [
|
|
||||||
"kvm"
|
|
||||||
])
|
|
||||||
(lib.mkIf (systemName == "pc") [
|
|
||||||
"kvm"
|
|
||||||
])
|
|
||||||
];
|
];
|
||||||
|
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
kernelModules = [ "v4l2loopback" ];
|
kernelModules = kernelBaseModules;
|
||||||
|
|
||||||
extraModulePackages = [
|
extraModulePackages = [
|
||||||
pkgs.linuxPackages_latest.v4l2loopback
|
pkgs.linuxPackages_latest.v4l2loopback
|
||||||
];
|
];
|
||||||
|
|
||||||
kernelParams = lib.mkMerge [
|
kernelParams = lib.mkMerge [
|
||||||
(lib.mkIf (systemName == "laptop") [
|
(lib.mkIf (isLaptop || isPc) kernelLPParams)
|
||||||
"ipv6e=1"
|
(lib.mkIf isLaptop kernelLaptopOnly)
|
||||||
"i915.force_probe=46a6"
|
(lib.mkIf isPc kernelPcOnly)
|
||||||
])
|
|
||||||
(lib.mkIf (systemName == "pc") [
|
|
||||||
"video=2560x1440x32"
|
|
||||||
"ipv6e=1"
|
|
||||||
])
|
|
||||||
];
|
];
|
||||||
|
|
||||||
extraModprobeConfig = ''
|
extraModprobeConfig = ''
|
||||||
options v4l2loopback devices=2 video_nr=1,0 card_label="OBS Cam","phone cam" exclusive_caps=1,1
|
options v4l2loopback devices=2 video_nr=1,0 card_label="OBS Cam","phone cam" exclusive_caps=1,1
|
||||||
'';
|
'';
|
||||||
|
|
||||||
plymouth = {
|
plymouth = {
|
||||||
enable = false;
|
enable = false;
|
||||||
themePackages = [
|
themePackages = [ pkgs.plymouth-matrix-theme ];
|
||||||
pkgs.plymouth-matrix-theme
|
|
||||||
];
|
|
||||||
theme = "matrix";
|
theme = "matrix";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -6,9 +6,18 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
# Shared VA-API / VDPAU bits across both machines
|
||||||
|
commonVA = with pkgs; [
|
||||||
|
libva
|
||||||
|
vaapiVdpau
|
||||||
|
libvdpau-va-gl
|
||||||
|
];
|
||||||
|
in
|
||||||
{
|
{
|
||||||
# hardware stuff
|
# ── Graphics ─────────────────────────────────────────────────────────────────
|
||||||
hardware.graphics = lib.mkMerge [
|
hardware.graphics = lib.mkMerge [
|
||||||
|
# Laptop: Intel stack
|
||||||
(lib.mkIf (systemName == "laptop") {
|
(lib.mkIf (systemName == "laptop") {
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit = true;
|
enable32Bit = true;
|
||||||
@@ -16,11 +25,10 @@
|
|||||||
intel-media-driver
|
intel-media-driver
|
||||||
intel-vaapi-driver
|
intel-vaapi-driver
|
||||||
vpl-gpu-rt
|
vpl-gpu-rt
|
||||||
libva
|
] ++ commonVA;
|
||||||
vaapiVdpau
|
|
||||||
libvdpau-va-gl
|
|
||||||
];
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
# PC: AMD/ROCm stack
|
||||||
(lib.mkIf (systemName == "pc") {
|
(lib.mkIf (systemName == "pc") {
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit = true;
|
enable32Bit = true;
|
||||||
@@ -36,35 +44,34 @@
|
|||||||
rocmPackages.rocsolver
|
rocmPackages.rocsolver
|
||||||
rocmPackages.rocm-comgr
|
rocmPackages.rocm-comgr
|
||||||
rocmPackages.rocsparse
|
rocmPackages.rocsparse
|
||||||
libva
|
|
||||||
vaapiVdpau
|
|
||||||
libvdpau-va-gl
|
|
||||||
# amdvlk
|
# amdvlk
|
||||||
# driversi686Linux.amdvlk
|
# driversi686Linux.amdvlk
|
||||||
# mesa
|
# mesa
|
||||||
# driversi686Linux.mesa
|
# driversi686Linux.mesa
|
||||||
];
|
] ++ commonVA;
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
hardware.bluetooth.enable = true; # enables support for Bluetooth
|
# ── Bluetooth ────────────────────────────────────────────────────────────────
|
||||||
hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot
|
hardware.bluetooth = {
|
||||||
# hardware.pulseaudio = {
|
enable = true; # Enable Bluetooth support
|
||||||
# package = pkgs.pulseaudioFull;
|
powerOnBoot = true; # Power up controller on boot
|
||||||
# };
|
settings.General = {
|
||||||
hardware.bluetooth.settings = {
|
|
||||||
General = {
|
|
||||||
Enable = "Source,Sink,Media,Socket";
|
Enable = "Source,Sink,Media,Socket";
|
||||||
# Experimental = true;
|
# Experimental = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
hardware.opentabletdriver.enable = true;
|
|
||||||
hardware.opentabletdriver.daemon.enable = true;
|
# ── Tablets ─────────────────────────────────────────────────────────────────
|
||||||
# Enable sound.
|
hardware.opentabletdriver = {
|
||||||
|
enable = true;
|
||||||
|
daemon.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# ── Audio (disabled examples) ───────────────────────────────────────────────
|
||||||
# sound.enable = true;
|
# sound.enable = true;
|
||||||
# hardware.pulseaudio = {
|
# hardware.pulseaudio = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# package = pkgs.pulseaudioFull;
|
# package = pkgs.pulseaudioFull;
|
||||||
# };
|
# };
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,44 +5,40 @@
|
|||||||
systemName,
|
systemName,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
isLaptop = systemName == "laptop";
|
||||||
|
isPc = systemName == "pc";
|
||||||
|
in
|
||||||
{
|
{
|
||||||
networking = {
|
networking = lib.mkMerge [
|
||||||
# Define hostname based on system type
|
# Hostname per system type
|
||||||
hostName = lib.mkMerge [
|
(lib.mkIf isLaptop { hostName = "mrfluffyLaptop"; })
|
||||||
(lib.mkIf (systemName == "laptop") "mrfluffyLaptop")
|
(lib.mkIf isPc { hostName = "mrfluffyPC"; })
|
||||||
(lib.mkIf (systemName == "pc") "mrfluffyPC")
|
|
||||||
];
|
|
||||||
|
|
||||||
# Firewall configuration
|
# Common networking config
|
||||||
|
{
|
||||||
|
# Firewall
|
||||||
firewall = {
|
firewall = {
|
||||||
# Open ports in the firewall.
|
|
||||||
# allowedTCPPorts = [ ... ];
|
# allowedTCPPorts = [ ... ];
|
||||||
# allowedUDPPorts = [ ... ];
|
# allowedUDPPorts = [ ... ];
|
||||||
# Or disable the firewall altogether.
|
|
||||||
enable = false;
|
enable = false;
|
||||||
checkReversePath = false;
|
checkReversePath = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Networking options
|
# NetworkManager
|
||||||
# Pick only one of the below networking options.
|
|
||||||
# wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
|
||||||
networkmanager = {
|
networkmanager = {
|
||||||
enable = true; # Easiest to use and most distros use this by default.
|
enable = true;
|
||||||
dns = "none";
|
dns = "none";
|
||||||
};
|
};
|
||||||
|
|
||||||
# DHCP settings
|
# DHCP
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
dhcpcd.enable = false;
|
dhcpcd.enable = false;
|
||||||
|
|
||||||
# IPv6 configuration
|
# IPv6
|
||||||
enableIPv6 = true;
|
enableIPv6 = true;
|
||||||
|
|
||||||
# Configure network proxy if necessary
|
# Hosts & DNS
|
||||||
# proxy.default = "http://user:password@proxy:port/";
|
|
||||||
# proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
|
|
||||||
# Hosts and DNS configuration
|
|
||||||
extraHosts = ''
|
extraHosts = ''
|
||||||
127.0.0.0 localhost
|
127.0.0.0 localhost
|
||||||
'';
|
'';
|
||||||
@@ -54,8 +50,12 @@
|
|||||||
"local"
|
"local"
|
||||||
];
|
];
|
||||||
|
|
||||||
# # environment.etc = {
|
# Proxies (disabled)
|
||||||
# # "resolv.conf".text = "nameserver 192.168.1.180\noptions edns0 trust-ad\nsearch home\n";
|
# proxy.default = "http://user:password@proxy:port/";
|
||||||
# # };
|
# proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||||
};
|
|
||||||
|
# Wireless (alternative approach, disabled)
|
||||||
|
# wireless.enable = true; # wpa_supplicant
|
||||||
|
}
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
let
|
let
|
||||||
inherit (pkgs) anime4k;
|
inherit (pkgs) anime4k;
|
||||||
|
|
||||||
# Use writeText instead of writeLua luacheck can't cry about the long lines
|
# Use writeText instead of writeLua so linters don't complain about long lines
|
||||||
autoAnime4k = pkgs.writeText "auto-anime4k-switcher.lua" ''
|
autoAnime4k = pkgs.writeText "auto-anime4k-switcher.lua" ''
|
||||||
local function get_nearest(x, numbers)
|
local function get_nearest(x, numbers)
|
||||||
local min_index = nil
|
local min_index = nil
|
||||||
@@ -26,13 +26,7 @@ let
|
|||||||
return numbers[min_index]
|
return numbers[min_index]
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Fast
|
-- HQ shader map
|
||||||
-- local shader_map = {
|
|
||||||
-- [1080] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_M.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl",
|
|
||||||
-- [720] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_M.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl",
|
|
||||||
-- [480] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Upscale_Denoise_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"
|
|
||||||
-- }
|
|
||||||
-- HQ
|
|
||||||
local shader_map = {
|
local shader_map = {
|
||||||
[1080] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl",
|
[1080] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl",
|
||||||
[720] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl",
|
[720] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl",
|
||||||
@@ -55,162 +49,154 @@ let
|
|||||||
end)
|
end)
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.gamescope = {
|
############################
|
||||||
enable = true;
|
# Nixpkgs & overlays
|
||||||
capSysNice = true;
|
############################
|
||||||
};
|
nixpkgs = {
|
||||||
nixpkgs.config = {
|
config.allowUnfree = true;
|
||||||
allowUnfree = true;
|
overlays = [
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
(self: super: {
|
(self: super: {
|
||||||
|
|
||||||
mpv = super.wrapMpv (super.mpv.unwrapped.override { sixelSupport = true; }) {
|
mpv = super.wrapMpv (super.mpv.unwrapped.override { sixelSupport = true; }) {
|
||||||
scripts = [ self.mpvScripts.mpris ];
|
scripts = [ self.mpvScripts.mpris ];
|
||||||
|
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
# 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;
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
programs.nh = {
|
|
||||||
enable = true;
|
|
||||||
clean.enable = true;
|
|
||||||
clean.extraArgs = "--keep-since 4d --keep 3";
|
|
||||||
flake = "$HOME/nixos-dots/"; # sets NH_OS_FLAKE variable for you
|
|
||||||
};
|
};
|
||||||
programs.direnv = {
|
|
||||||
|
############################
|
||||||
|
# Core programs
|
||||||
|
############################
|
||||||
|
programs = {
|
||||||
|
gamescope = {
|
||||||
|
enable = true;
|
||||||
|
capSysNice = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
nh = {
|
||||||
|
enable = true;
|
||||||
|
clean = {
|
||||||
|
enable = true;
|
||||||
|
extraArgs = "--keep-since 4d --keep 3";
|
||||||
|
};
|
||||||
|
flake = "$HOME/nixos-dots/"; # sets NH_OS_FLAKE
|
||||||
|
};
|
||||||
|
|
||||||
|
direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
silent = true;
|
silent = true;
|
||||||
};
|
};
|
||||||
programs.virt-manager.enable = true;
|
|
||||||
programs.zsh.enable = true;
|
virt-manager.enable = true;
|
||||||
programs.corectrl.enable = true;
|
zsh.enable = true;
|
||||||
programs.opengamepadui = {
|
corectrl.enable = true;
|
||||||
|
|
||||||
|
opengamepadui = {
|
||||||
enable = true;
|
enable = true;
|
||||||
gamescopeSession.enable = true;
|
gamescopeSession.enable = true;
|
||||||
};
|
};
|
||||||
programs.steam = {
|
|
||||||
|
steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
remotePlay.openFirewall = true;
|
||||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
dedicatedServer.openFirewall = true;
|
||||||
extraCompatPackages = with pkgs; [ gamescope mangohud gamemode ];
|
extraCompatPackages = with pkgs; [ gamescope mangohud gamemode ];
|
||||||
gamescopeSession = {
|
gamescopeSession.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Dynamic linker for foreign binaries
|
||||||
|
nix-ld = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
libraries = with pkgs; [
|
||||||
};
|
# add libraries here if needed
|
||||||
# enable dynamic bin executables
|
|
||||||
programs.nix-ld.enable = true;
|
|
||||||
programs.nix-ld.libraries = with pkgs; [
|
|
||||||
# add libraries here
|
|
||||||
# alsa-lib
|
# alsa-lib
|
||||||
# libGL
|
# libGL
|
||||||
# glibc
|
# glibc
|
||||||
#glib
|
# ...
|
||||||
#fontconfig
|
|
||||||
#xorg.libX11
|
|
||||||
#xorg.libXcomposite
|
|
||||||
#xorg.libXdamage
|
|
||||||
#xorg.libXfixes
|
|
||||||
#xorg.libXrender
|
|
||||||
#xorg.libXrandr
|
|
||||||
#xorg.libXtst
|
|
||||||
#xorg_sys_opengl
|
|
||||||
#xorg.libXi
|
|
||||||
#xorg.libxshmfence
|
|
||||||
#xorg.libxkbfile
|
|
||||||
#xorg.libxcb
|
|
||||||
#xorg.xcbutilwm
|
|
||||||
#xorg.xcbutilimage
|
|
||||||
#xorg.xcbutilkeysyms
|
|
||||||
#xorg.xcbutilrenderutil
|
|
||||||
#xcb-util-cursor
|
|
||||||
#libgbm
|
|
||||||
#libxkbcommon
|
|
||||||
#freetype
|
|
||||||
#dbus
|
|
||||||
#krb5
|
|
||||||
#nss
|
|
||||||
#zotero
|
|
||||||
#nspr
|
|
||||||
#gtk3
|
|
||||||
#libappindicator-gtk3
|
|
||||||
#mesa
|
|
||||||
#vulkan-loader
|
|
||||||
];
|
];
|
||||||
|
};
|
||||||
|
|
||||||
#backlight tool
|
# Backlight tool
|
||||||
programs.light.enable = true;
|
light.enable = true;
|
||||||
|
|
||||||
programs.nm-applet = {
|
# NetworkManager applet
|
||||||
|
nm-applet = {
|
||||||
enable = true;
|
enable = true;
|
||||||
indicator = false;
|
indicator = false;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
############################
|
||||||
# $ nix search wget
|
# System packages
|
||||||
|
############################
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
# --- Editors & Shell UX ---
|
||||||
neovim
|
|
||||||
wl-clipboard
|
|
||||||
bat
|
bat
|
||||||
anime4k
|
neovim
|
||||||
socat
|
vim
|
||||||
|
zoxide
|
||||||
|
|
||||||
|
# --- CLI essentials ---
|
||||||
eza
|
eza
|
||||||
wget
|
|
||||||
foot
|
|
||||||
spaceship-prompt
|
|
||||||
git
|
|
||||||
bitwarden
|
|
||||||
zip
|
|
||||||
xclip
|
|
||||||
fd
|
fd
|
||||||
fzf
|
fzf
|
||||||
zotero
|
ripgrep
|
||||||
jdk11
|
wget
|
||||||
hunspell
|
|
||||||
hunspellDicts.en_US
|
|
||||||
pavucontrol
|
|
||||||
zoxide
|
|
||||||
xcp
|
xcp
|
||||||
polkit_gnome
|
zip
|
||||||
unzip
|
unzip
|
||||||
|
|
||||||
|
# --- Nix tooling ---
|
||||||
|
nil
|
||||||
|
nixfmt-rfc-style
|
||||||
|
inputs.nix-alien.packages.${pkgs.system}.nix-alien
|
||||||
|
|
||||||
|
# --- Wayland / Desktop ---
|
||||||
|
foot
|
||||||
|
libdecor
|
||||||
|
wl-clipboard
|
||||||
|
xwayland-satellite
|
||||||
|
|
||||||
|
# --- Media / Graphics ---
|
||||||
|
anime4k
|
||||||
ffmpeg
|
ffmpeg
|
||||||
libva-utils
|
libva-utils
|
||||||
nixfmt-rfc-style
|
pavucontrol
|
||||||
nil
|
|
||||||
kdePackages.qt6ct
|
# --- Networking / Secrets ---
|
||||||
ripgrep
|
bitwarden
|
||||||
xwayland-satellite
|
polkit_gnome
|
||||||
|
xclip
|
||||||
|
socat
|
||||||
|
|
||||||
|
# --- Development toolchains ---
|
||||||
cmake
|
cmake
|
||||||
gnumake
|
|
||||||
gcc
|
gcc
|
||||||
libtool
|
gnumake
|
||||||
|
jdk11
|
||||||
ladspaPlugins
|
ladspaPlugins
|
||||||
inputs.nix-alien.packages.${pkgs.system}.nix-alien
|
libtool
|
||||||
python311
|
python311
|
||||||
|
|
||||||
|
# --- Spellcheck / Fonts ---
|
||||||
|
hunspell
|
||||||
|
hunspellDicts.en_US
|
||||||
|
|
||||||
|
# --- KDE Wallet bits ---
|
||||||
kdePackages.kwallet
|
kdePackages.kwallet
|
||||||
kdePackages.kwalletmanager
|
kdePackages.kwalletmanager
|
||||||
kdePackages.kwallet-pam # For PAM integration if needed
|
kdePackages.kwallet-pam
|
||||||
#
|
|
||||||
|
# --- Apps ---
|
||||||
|
git
|
||||||
|
zotero
|
||||||
|
|
||||||
|
# --- Handy script: send steam URL to FIFO ---
|
||||||
(pkgs.writeShellScriptBin "steam-run-url" ''
|
(pkgs.writeShellScriptBin "steam-run-url" ''
|
||||||
FIFO="/run/user/$(id --user)/steam-run-url.fifo"
|
FIFO="/run/user/$(id --user)/steam-run-url.fifo"
|
||||||
echo "$1" > "$FIFO"
|
echo "$1" > "$FIFO"
|
||||||
'')
|
'')
|
||||||
libdecor
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +1,20 @@
|
|||||||
{
|
{ config, lib, pkgs, systemName, ... }:
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
systemName,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
###############################################
|
||||||
|
# Desktop & Input
|
||||||
|
###############################################
|
||||||
services.xserver.windowManager.fvwm2.gestures = true;
|
services.xserver.windowManager.fvwm2.gestures = true;
|
||||||
# Enable CUPS to print documents.
|
|
||||||
services.printing.enable = true;
|
|
||||||
|
|
||||||
# power managment
|
# Enable touchpad support (enabled by default in most desktop managers).
|
||||||
services.power-profiles-daemon.enable = true;
|
services.libinput = {
|
||||||
services.upower = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
touchpad = {
|
||||||
|
tapping = true;
|
||||||
|
# horizontalScrolling = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#direnv speedup
|
|
||||||
services.lorri.enable = true;
|
|
||||||
|
|
||||||
#services.gnome.gnome-keyring.enable = true;
|
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
# services.xserver.xkb.layout = "us";
|
# services.xserver.xkb.layout = "us";
|
||||||
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
||||||
@@ -31,10 +24,10 @@
|
|||||||
# Enable the GNOME Desktop Environment.
|
# Enable the GNOME Desktop Environment.
|
||||||
# services.xserver.displayManager.gdm.enable = true;
|
# services.xserver.displayManager.gdm.enable = true;
|
||||||
# services.xserver.desktopManager.gnome.enable = true;
|
# services.xserver.desktopManager.gnome.enable = true;
|
||||||
#
|
|
||||||
|
|
||||||
services.flatpak.enable = true;
|
###############################################
|
||||||
services.automatic-timezoned.enable = true;
|
# Audio / Bluetooth
|
||||||
|
###############################################
|
||||||
services.pipewire = lib.mkMerge [
|
services.pipewire = lib.mkMerge [
|
||||||
(lib.mkIf (systemName == "laptop") {
|
(lib.mkIf (systemName == "laptop") {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -61,11 +54,7 @@
|
|||||||
"92-low-latency" = {
|
"92-low-latency" = {
|
||||||
"context.properties" = {
|
"context.properties" = {
|
||||||
"default.clock.rate" = 96000;
|
"default.clock.rate" = 96000;
|
||||||
"default.clock.allowed-rates" = [
|
"default.clock.allowed-rates" = [ 44100 48000 96000 ];
|
||||||
44100
|
|
||||||
48000
|
|
||||||
96000
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -74,20 +63,105 @@
|
|||||||
|
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
###############################################
|
||||||
services.libinput = {
|
# Printing & Files
|
||||||
|
###############################################
|
||||||
|
# Enable CUPS to print documents.
|
||||||
|
services.printing.enable = true;
|
||||||
|
|
||||||
|
services.gvfs.enable = true;
|
||||||
|
services.tumbler.enable = true;
|
||||||
|
|
||||||
|
###############################################
|
||||||
|
# Time & Power
|
||||||
|
###############################################
|
||||||
|
services.automatic-timezoned.enable = true;
|
||||||
|
|
||||||
|
# Power management
|
||||||
|
services.power-profiles-daemon.enable = true;
|
||||||
|
services.upower = {
|
||||||
enable = true;
|
enable = true;
|
||||||
touchpad = {
|
|
||||||
tapping = true;
|
|
||||||
#horizontalScrolling = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# List services that you want to enable:
|
|
||||||
services.emacs = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.emacs-pgtk; # replace with emacs-gtk, or a version provided by the community overlay if desired.
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Laptop-specific lid and sleep behavior
|
||||||
|
services.logind = lib.mkIf (systemName == "laptop") {
|
||||||
|
lidSwitch = "suspend-then-hibernate";
|
||||||
|
lidSwitchExternalPower = "suspend-then-hibernate";
|
||||||
|
lidSwitchDocked = "suspend-then-hibernate";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.sleep.extraConfig = lib.mkIf (systemName == "laptop") ''
|
||||||
|
HibernateDelaySec=120min
|
||||||
|
SuspendState=mem
|
||||||
|
'';
|
||||||
|
|
||||||
|
###############################################
|
||||||
|
# Developer Tools & Services
|
||||||
|
###############################################
|
||||||
|
# direnv speedup
|
||||||
|
services.lorri.enable = true;
|
||||||
|
|
||||||
|
services.emacs = {
|
||||||
|
enable = true;
|
||||||
|
# replace with emacs-gtk, or a version provided by the community overlay if desired.
|
||||||
|
package = pkgs.emacs-pgtk;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.flatpak.enable = true;
|
||||||
|
|
||||||
|
# Sunshine (only on PC)
|
||||||
|
services.sunshine = lib.mkIf (systemName == "pc") {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
sunshine_name = "nixos";
|
||||||
|
port = 47989;
|
||||||
|
output_name = 0;
|
||||||
|
};
|
||||||
|
applications = {
|
||||||
|
apps = [
|
||||||
|
{
|
||||||
|
name = "Steam";
|
||||||
|
env = {
|
||||||
|
PATH = "$(PATH):/run/current-system/sw/bin";
|
||||||
|
};
|
||||||
|
output = "steam.txt";
|
||||||
|
detached = [
|
||||||
|
"setsid /run/current-system/sw/bin/steam steam://open/bigpicture"
|
||||||
|
];
|
||||||
|
prep-cmd = [
|
||||||
|
{
|
||||||
|
"do" = "";
|
||||||
|
"undo" = "setsid /run/current-system/sw/bin/steam steam://close/bigpicture";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
image-path = "steam.png";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
capSysAdmin = false;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Ollama (only on PC)
|
||||||
|
services.ollama = lib.mkIf (systemName == "pc") {
|
||||||
|
enable = true;
|
||||||
|
port = 11434;
|
||||||
|
host = "0.0.0.0";
|
||||||
|
acceleration = "rocm";
|
||||||
|
rocmOverrideGfx = "11.0.0";
|
||||||
|
environmentVariables = {
|
||||||
|
OLLAMA_DEBUG = "1";
|
||||||
|
OLLAMA_MMAP = "0";
|
||||||
|
OLLAMA_NUM_CTX = "8192";
|
||||||
|
OLLAMA_NUM_GPU = "20";
|
||||||
|
# HSA_OVERRIDE_GFX_VERSION = "11.0.0";
|
||||||
|
# OLLAMA_KV_CACHE_TYPE = "q4";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
###############################################
|
||||||
|
# Systemd User Services
|
||||||
|
###############################################
|
||||||
systemd.user.services.steam-run-url-service = {
|
systemd.user.services.steam-run-url-service = {
|
||||||
description = "Service to launch Steam URLs via FIFO";
|
description = "Service to launch Steam URLs via FIFO";
|
||||||
wantedBy = [ "default.target" ];
|
wantedBy = [ "default.target" ];
|
||||||
@@ -115,56 +189,9 @@
|
|||||||
path = [ pkgs.steam ];
|
path = [ pkgs.steam ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
###############################################
|
||||||
services.sunshine = lib.mkIf (systemName == "pc") {
|
# Networking & Remote
|
||||||
enable = true;
|
###############################################
|
||||||
settings = {
|
|
||||||
sunshine_name = "nixos";
|
|
||||||
port = 47989;
|
|
||||||
output_name = 0;
|
|
||||||
};
|
|
||||||
applications = {
|
|
||||||
apps = [
|
|
||||||
{
|
|
||||||
name = "Steam";
|
|
||||||
env = {
|
|
||||||
PATH = "$(PATH):/run/current-system/sw/bin";
|
|
||||||
};
|
|
||||||
output = "steam.txt";
|
|
||||||
detached = [ "setsid /run/current-system/sw/bin/steam steam://open/bigpicture" ];
|
|
||||||
prep-cmd = [
|
|
||||||
{
|
|
||||||
"do" = "";
|
|
||||||
"undo" = "setsid /run/current-system/sw/bin/steam steam://close/bigpicture";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
image-path = "steam.png";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
capSysAdmin = false;
|
|
||||||
openFirewall = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.ollama = lib.mkIf (systemName == "pc") {
|
|
||||||
enable = true;
|
|
||||||
port = 11434;
|
|
||||||
host = "0.0.0.0";
|
|
||||||
acceleration = "rocm";
|
|
||||||
rocmOverrideGfx = "11.0.0";
|
|
||||||
environmentVariables = {
|
|
||||||
OLLAMA_DEBUG = "1";
|
|
||||||
OLLAMA_MMAP = "0";
|
|
||||||
OLLAMA_NUM_CTX="8192";
|
|
||||||
OLLAMA_NUM_GPU="20";
|
|
||||||
#HSA_OVERRIDE_GFX_VERSION = "11.0.0";
|
|
||||||
#OLLAMA_KV_CACHE_TYPE = "q4";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.gvfs.enable = true;
|
|
||||||
services.tumbler.enable = true;
|
|
||||||
|
|
||||||
# services.resolved = {
|
# services.resolved = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# dnssec = "true";
|
# dnssec = "true";
|
||||||
@@ -173,29 +200,25 @@
|
|||||||
# dnsovertls = "true";
|
# dnsovertls = "true";
|
||||||
# };
|
# };
|
||||||
|
|
||||||
virtualisation.libvirtd.enable = true;
|
|
||||||
# Enable the OpenSSH daemon.
|
# Enable the OpenSSH daemon.
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
# laptop screen lid colose stuff
|
|
||||||
services.logind = lib.mkIf (systemName == "laptop") {
|
###############################################
|
||||||
lidSwitch = "suspend-then-hibernate";
|
# Virtualization
|
||||||
lidSwitchExternalPower = "suspend-then-hibernate";
|
###############################################
|
||||||
lidSwitchDocked = "suspend-then-hibernate";
|
virtualisation.libvirtd.enable = true;
|
||||||
};
|
|
||||||
#suspend stuff
|
###############################################
|
||||||
systemd.sleep.extraConfig = lib.mkIf (systemName == "laptop") ''
|
# Udev Rules
|
||||||
HibernateDelaySec=120min
|
###############################################
|
||||||
SuspendState=mem
|
|
||||||
'';
|
|
||||||
#udev rules
|
|
||||||
services.udev.packages = [
|
services.udev.packages = [
|
||||||
pkgs.platformio-core
|
pkgs.platformio-core
|
||||||
pkgs.platformio
|
pkgs.platformio
|
||||||
pkgs.openocd
|
pkgs.openocd
|
||||||
pkgs.brave
|
pkgs.brave
|
||||||
];
|
];
|
||||||
|
|
||||||
# services.udev.extraRules = ''
|
# services.udev.extraRules = ''
|
||||||
# KERNEL=="hidraw*", KERNELS=="*054C:0CE6*", MODE="0660", TAG+="uaccess"
|
# KERNEL=="hidraw*", KERNELS=="*054C:0CE6*", MODE="0660", TAG+="uaccess"
|
||||||
# '';
|
# '';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user