mirror of
https://github.com/JaxTheWolf/nixos.git
synced 2026-04-01 02:00:22 +02:00
Compare commits
67 Commits
split-wip
...
841c3b2fbd
| Author | SHA1 | Date | |
|---|---|---|---|
| 841c3b2fbd | |||
| a3cccd8751 | |||
| d9478157fb | |||
| 599be0b0e5 | |||
| 0a07190179 | |||
| 401490f581 | |||
| 0c59ee08ef | |||
| 5b71825d70 | |||
| 4959baf11c | |||
| b1eb8d16fc | |||
| a4c34f9857 | |||
| 463ce1c6f9 | |||
| 0ce1ea44df | |||
| ea1f1e4e2c | |||
| c384c85035 | |||
| a81caa8e1b | |||
| 1f1a76b92d | |||
| d30200f081 | |||
| 6ff3ca400b | |||
| 2af4cbf42b | |||
| 87985b6384 | |||
| 84915990f9 | |||
| f9a4b97ab2 | |||
| 6926a7a9a6 | |||
| 0551560602 | |||
| a7f46adfdf | |||
| f2dbee1ee8 | |||
| dbde683d41 | |||
| 3e9907c936 | |||
| 16b8b699d1 | |||
| d8ee1a648d | |||
| da228b499f | |||
| 7e1c8c167e | |||
| db06a663ec | |||
| 5008192cc9 | |||
| 4570081b22 | |||
| c08b8b2ae0 | |||
| 6147d3ca27 | |||
| d8ddf42910 | |||
| 956ace75b0 | |||
| 689efaa75b | |||
| 59b43a29c7 | |||
| db20f6fee1 | |||
| 2f474c8413 | |||
| 5bcaf7217a | |||
| d1e6f5d7af | |||
| 9a0d6d06fe | |||
| 777f547501 | |||
| 375ccff408 | |||
| 84b57d81b5 | |||
| 8b5feff5b5 | |||
| 658d722d17 | |||
| 3c14c62256 | |||
| 46db890c53 | |||
| 2476dfaa67 | |||
| 349ed2e891 | |||
| 8a956aa9a5 | |||
| 4dbb21fc9e | |||
| 41d4d204de | |||
| 21a403c3f4 | |||
| 6d39b13483 | |||
| 2fb0e31be8 | |||
| e58d0d2ce9 | |||
| b7ce19d338 | |||
| 1bed41fad3 | |||
| 4231c63c14 | |||
| 398fa0f195 |
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
result
|
||||
*.qcow2
|
||||
32
Justfile
Normal file
32
Justfile
Normal file
@@ -0,0 +1,32 @@
|
||||
default: switch build-laptop upload clean
|
||||
|
||||
vm-desktop:
|
||||
nix build .#nixosConfigurations.epiquev2.config.system.build.vm
|
||||
./result/bin/run-epiquev2-vm
|
||||
|
||||
vm-laptop:
|
||||
nix build .#nixosConfigurations.dalaptop.config.system.build.vm
|
||||
./result/bin/run-dalaptop-vm
|
||||
|
||||
build-laptop:
|
||||
nix build .#nixosConfigurations.dalaptop.config.system.build.toplevel --log-format internal-json |& nom --json
|
||||
|
||||
upload:
|
||||
attic push my-config result -j2
|
||||
attic push my-config /run/current-system -j2
|
||||
|
||||
clean:
|
||||
rm -rf result
|
||||
rm -rf *.qcow2
|
||||
|
||||
format:
|
||||
treefmt .
|
||||
|
||||
switch:
|
||||
nh os switch --refresh
|
||||
|
||||
switch_update:
|
||||
nh os switch --refresh --update
|
||||
|
||||
help:
|
||||
@just --list
|
||||
@@ -3,27 +3,35 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
imports = [
|
||||
./modules
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
documentation.nixos.enable = false;
|
||||
|
||||
boot = {
|
||||
loader = {
|
||||
efi.canTouchEfiVariables = true;
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
memtest86.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
consoleLogLevel = 3;
|
||||
plymouth.enable = true;
|
||||
};
|
||||
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
networkmanager = {
|
||||
enable = true;
|
||||
plugins = with pkgs; [
|
||||
networkmanager-openconnect
|
||||
];
|
||||
};
|
||||
|
||||
firewall.enable = false;
|
||||
};
|
||||
|
||||
@@ -45,7 +53,10 @@
|
||||
};
|
||||
};
|
||||
|
||||
console.keyMap = "cz-lat2";
|
||||
console = {
|
||||
keyMap = "cz-lat2";
|
||||
font = "LatArCyrHeb-16";
|
||||
};
|
||||
|
||||
xdg.portal.enable = true;
|
||||
|
||||
@@ -54,6 +65,7 @@
|
||||
sudo.extraConfig = ''
|
||||
Defaults insults
|
||||
'';
|
||||
|
||||
polkit.extraConfig = ''
|
||||
polkit.addRule(function(action, subject) {
|
||||
if (action.id == "org.libvirt.unix.manage" &&
|
||||
@@ -71,6 +83,7 @@
|
||||
storageDriver = "btrfs";
|
||||
enableOnBoot = true;
|
||||
};
|
||||
|
||||
libvirtd = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
@@ -79,6 +92,7 @@
|
||||
|
||||
onBoot = "ignore";
|
||||
};
|
||||
|
||||
spiceUSBRedirection.enable = true;
|
||||
};
|
||||
|
||||
@@ -94,7 +108,9 @@
|
||||
"video"
|
||||
"render"
|
||||
"input"
|
||||
"dialout"
|
||||
];
|
||||
|
||||
shell = pkgs.zsh;
|
||||
#packages = with pkgs; [ ];
|
||||
};
|
||||
@@ -104,18 +120,22 @@
|
||||
NIXOS_OZONE_WL = "1";
|
||||
LIBVIRT_DEFAULT_URI = "qemu:///system";
|
||||
};
|
||||
systemPackages = [
|
||||
pkgs.libheif
|
||||
pkgs.libheif.out
|
||||
|
||||
systemPackages = with pkgs; [
|
||||
libheif
|
||||
libheif.out
|
||||
];
|
||||
pathsToLink = [ "share/thumbnailers" ];
|
||||
|
||||
pathsToLink = ["share/thumbnailers"];
|
||||
};
|
||||
|
||||
hardware = {
|
||||
bluetooth = {
|
||||
enable = true;
|
||||
package = pkgs.bluez.overrideAttrs (old: {
|
||||
configureFlags = old.configureFlags ++ [
|
||||
configureFlags =
|
||||
old.configureFlags
|
||||
++ [
|
||||
"--enable-sixaxis"
|
||||
];
|
||||
});
|
||||
@@ -154,6 +174,7 @@
|
||||
"flakes"
|
||||
"nix-command"
|
||||
];
|
||||
|
||||
warn-dirty = false;
|
||||
};
|
||||
|
||||
|
||||
30
common/flakes/clion-flake/flake.nix
Normal file
30
common/flakes/clion-flake/flake.nix
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
description = "Latest CLion from JetBrains";
|
||||
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
}: let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
permittedInsecurePackages = [
|
||||
"openssl-1.1.1w"
|
||||
];
|
||||
};
|
||||
};
|
||||
in {
|
||||
packages.${system}.default = pkgs.jetbrains.clion.overrideAttrs (oldAttrs: rec {
|
||||
version = "2026.1";
|
||||
src = pkgs.fetchurl {
|
||||
url = "https://download-cdn.jetbrains.com/cpp/CLion-${version}.tar.gz";
|
||||
hash = "sha256-r5flY2u6aCkI8q7ZcGWYLLxxcWWp3gtTkdBdKoacIB0=";
|
||||
};
|
||||
buildInputs = oldAttrs.buildInputs ++ [pkgs.openssl_1_1];
|
||||
});
|
||||
};
|
||||
}
|
||||
@@ -7,45 +7,42 @@
|
||||
url = "github:qarmin/czkawka";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
naersk = {
|
||||
url = "github:nix-community/naersk";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
czkawka-src,
|
||||
naersk,
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
naersk-lib = pkgs.callPackage naersk { };
|
||||
pkgs = import nixpkgs {inherit system;};
|
||||
naersk-lib = pkgs.callPackage naersk {};
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
pkg-config
|
||||
cargo
|
||||
cmake
|
||||
makeWrapper
|
||||
cargo
|
||||
pkg-config
|
||||
rustc
|
||||
];
|
||||
|
||||
runtimeLibs = with pkgs; [
|
||||
wayland
|
||||
libxkbcommon
|
||||
libglvnd
|
||||
fontconfig
|
||||
libglvnd
|
||||
libX11
|
||||
libXcursor
|
||||
libXi
|
||||
libxkbcommon
|
||||
libXrandr
|
||||
wayland
|
||||
];
|
||||
|
||||
in
|
||||
{
|
||||
in {
|
||||
packages.${system}.default = naersk-lib.buildPackage {
|
||||
pname = "krokiet";
|
||||
version = "master";
|
||||
@@ -54,8 +51,7 @@
|
||||
nativeBuildInputs = nativeBuildInputs;
|
||||
buildInputs = runtimeLibs;
|
||||
|
||||
cargoBuildOptions =
|
||||
x:
|
||||
cargoBuildOptions = x:
|
||||
x
|
||||
++ [
|
||||
"-p"
|
||||
|
||||
@@ -6,37 +6,34 @@
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
}:
|
||||
flake-utils.lib.eachDefaultSystem (
|
||||
system:
|
||||
let
|
||||
system: let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
{
|
||||
in {
|
||||
packages.default = pkgs.stdenv.mkDerivation rec {
|
||||
pname = "fet";
|
||||
version = "7.7.6";
|
||||
version = "7.8.1";
|
||||
|
||||
src = pkgs.fetchurl {
|
||||
url = "https://lalescu.ro/liviu/fet/download/fet-${version}.tar.xz";
|
||||
sha256 = "06vvxxl5kza3a2v0fkw6bylavpickk8a5ybgabbhylmi59c1q1ns";
|
||||
sha256 = "0b0g20mgawpv6pp6b1vh0vhz6rr0193g2irqiclnxxlnf174bcfr";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkgs.qt6.qmake
|
||||
pkgs.qt6.wrapQtAppsHook
|
||||
pkgs.copyDesktopItems
|
||||
nativeBuildInputs = with pkgs; [
|
||||
copyDesktopItems
|
||||
qt6.qmake
|
||||
qt6.wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
pkgs.qt6.qtbase
|
||||
buildInputs = with pkgs; [
|
||||
qt6.qtbase
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
{
|
||||
description = "Solaar built from GitHub master branch";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
|
||||
solaar-src = {
|
||||
url = "github:pwr-Solaar/Solaar/master";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
solaar-src,
|
||||
}:
|
||||
flake-utils.lib.eachDefaultSystem (
|
||||
system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
pythonPackages = pkgs.python3Packages;
|
||||
in
|
||||
{
|
||||
packages.default = pythonPackages.buildPythonApplication rec {
|
||||
pname = "solaar";
|
||||
version = "master-${solaar-src.shortRev or "dirty"}";
|
||||
src = solaar-src;
|
||||
pyproject = true;
|
||||
|
||||
nativeBuildInputs =
|
||||
with pkgs;
|
||||
[
|
||||
gobject-introspection
|
||||
wrapGAppsHook3
|
||||
pkg-config
|
||||
]
|
||||
++ (with pythonPackages; [
|
||||
setuptools
|
||||
wheel
|
||||
]);
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [
|
||||
pyudev
|
||||
psutil
|
||||
xlib
|
||||
pyyaml
|
||||
evdev
|
||||
dbus-python
|
||||
pygobject3
|
||||
typing-extensions
|
||||
|
||||
pkgs.gtk3
|
||||
pkgs.libnotify
|
||||
pkgs.libayatana-appindicator
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -Dm644 rules.d/42-logitech-unify-permissions.rules \
|
||||
$out/lib/udev/rules.d/42-logitech-unify-permissions.rules
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -1,8 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest;
|
||||
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
{...}: {
|
||||
nix.settings = {
|
||||
substituters = [
|
||||
"https://attic.awroo.fun/my-config"
|
||||
@@ -9,7 +6,7 @@
|
||||
];
|
||||
|
||||
trusted-public-keys = [
|
||||
"my-config:51aC90S8+3+gS/UzwdnL7a7lu1NnY896SZp5njMwFDk="
|
||||
"my-config:hK+qaX2TdSrf/sp8LjKq9VF9XU0qGksoQCdgVXfgWoQ="
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
];
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
{...}: {
|
||||
imports = [
|
||||
./attic.nix
|
||||
./flatpak.nix
|
||||
./gnome.nix
|
||||
./packages.nix
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
update.auto.enable = true;
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
environment = {
|
||||
gnome.excludePackages = with pkgs; [
|
||||
decibels
|
||||
@@ -18,6 +16,7 @@
|
||||
gnome-music
|
||||
gnome-software
|
||||
gnome-system-monitor
|
||||
showtime
|
||||
snapshot
|
||||
totem
|
||||
yelp
|
||||
@@ -26,17 +25,20 @@
|
||||
systemPackages = with pkgs.gnomeExtensions; [
|
||||
alphabetical-app-grid
|
||||
appindicator
|
||||
bluetooth-quick-connect
|
||||
blur-my-shell
|
||||
control-monitor-brightness-and-volume-with-ddcutil
|
||||
bubblemail
|
||||
caffeine
|
||||
color-picker
|
||||
dash-to-dock
|
||||
# favorites-to-applications-grid
|
||||
middle-click-to-close-in-overview
|
||||
quick-settings-audio-panel
|
||||
solaar-extension
|
||||
undecorate
|
||||
user-themes
|
||||
window-is-ready-remover
|
||||
solaar-extension
|
||||
];
|
||||
};
|
||||
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
}
|
||||
|
||||
27
common/modules/home/dconf/apps.nix
Normal file
27
common/modules/home/dconf/apps.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
{lib, ...}: {
|
||||
dconf.settings = {
|
||||
"org/virt-manager/virt-manager/connections" = {
|
||||
autoconnect = ["qemu:///system"];
|
||||
uris = ["qemu:///system"];
|
||||
};
|
||||
|
||||
"org/gnome/Console" = {
|
||||
custom-font = lib.mkDefault "FiraCode Nerd Font 11";
|
||||
use-system-font = false;
|
||||
};
|
||||
|
||||
"org/gnome/TextEditor" = {
|
||||
custom-font = lib.mkDefault "Fira Code Nerd Font weight=450 11";
|
||||
use-system-font = false;
|
||||
};
|
||||
|
||||
"org/gnome/nautilus/preferences" = {
|
||||
default-folder-viewer = "icon-view";
|
||||
migrated-gtk-settings = true;
|
||||
recursive-search = "always";
|
||||
search-filter-time-type = "last_modified";
|
||||
show-directory-item-counts = "always";
|
||||
show-image-thumbnails = "always";
|
||||
};
|
||||
};
|
||||
}
|
||||
13
common/modules/home/dconf/default.nix
Normal file
13
common/modules/home/dconf/default.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
./apps.nix
|
||||
./extensions.nix
|
||||
./gnome.nix
|
||||
];
|
||||
|
||||
dconf.settings = {
|
||||
"system/locale" = {
|
||||
region = "cs_CZ.UTF-8";
|
||||
};
|
||||
};
|
||||
}
|
||||
167
common/modules/home/dconf/extensions.nix
Normal file
167
common/modules/home/dconf/extensions.nix
Normal file
@@ -0,0 +1,167 @@
|
||||
{lib, ...}: {
|
||||
dconf.settings = {
|
||||
"org/gnome/shell/extensions/user-theme" = {
|
||||
name = "Flat-Remix-Darkest-fullPanel";
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/thanatophobia" = {
|
||||
year = 2004;
|
||||
month = 11;
|
||||
day = 23;
|
||||
hour = 12;
|
||||
minute = 0;
|
||||
sex = 1;
|
||||
expectancy = 74.11;
|
||||
rounding = 7;
|
||||
country = "CZE";
|
||||
countdown = 0;
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/appindicator" = {
|
||||
icon-brightness = 0.0;
|
||||
icon-contrast = 0.0;
|
||||
icon-opacity = 240;
|
||||
icon-saturation = 0.0;
|
||||
icon-size = 0;
|
||||
legacy-tray-enabled = true;
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/dash-to-dock" = {
|
||||
apply-custom-theme = false;
|
||||
autohide-in-fullscreen = true;
|
||||
background-color = "rgb(0,0,0)";
|
||||
background-opacity = 0.8;
|
||||
click-action = "skip";
|
||||
custom-background-color = true;
|
||||
custom-theme-shrink = true;
|
||||
customize-alphas = true;
|
||||
dash-max-icon-size = 28;
|
||||
dock-fixed = false;
|
||||
dock-position = "BOTTOM";
|
||||
extend-height = false;
|
||||
height-fraction = 0.9;
|
||||
hide-tooltip = false;
|
||||
intellihide-mode = "ALL_WINDOWS";
|
||||
isolate-workspaces = true;
|
||||
max-alpha = 0.4;
|
||||
middle-click-action = "launch";
|
||||
min-alpha = 0.05;
|
||||
preferred-monitor = -2;
|
||||
preview-size-scale = 0.5;
|
||||
running-indicator-style = "DOTS";
|
||||
scroll-action = "cycle-windows";
|
||||
shift-click-action = "minimize";
|
||||
shift-middle-click-action = "launch";
|
||||
show-apps-at-top = true;
|
||||
show-mounts-network = true;
|
||||
transparency-mode = "DYNAMIC";
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/bluetooth-quick-connect" = {
|
||||
show-battery-value-on = true;
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/blur-my-shell" = {
|
||||
settings-version = 2;
|
||||
pipelines = lib.hm.gvariant.mkValue ''
|
||||
{
|
||||
'pipeline_default': {
|
||||
'name': <'Default'>,
|
||||
'effects': <[
|
||||
{
|
||||
'type': <'native_static_gaussian_blur'>,
|
||||
'id': <'effect_27049338116840'>,
|
||||
'params': <@a{sv} {}>
|
||||
},
|
||||
{
|
||||
'type': <'noise'>,
|
||||
'id': <'effect_90950561821691'>,
|
||||
'params': <{'lightness': <0.64>, 'noise': <0.25>}>
|
||||
}
|
||||
]>
|
||||
},
|
||||
'pipeline_default_rounded': {
|
||||
'name': <'Default rounded'>,
|
||||
'effects': <[
|
||||
{
|
||||
'type': <'native_static_gaussian_blur'>,
|
||||
'id': <'effect_000000000001'>,
|
||||
'params': <{'radius': <30>, 'brightness': <0.6>}>
|
||||
},
|
||||
{
|
||||
'type': <'corner'>,
|
||||
'id': <'effect_000000000002'>,
|
||||
'params': <{'radius': <24>}>
|
||||
}
|
||||
]>
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/blur-my-shell/appfolder" = {
|
||||
brightness = 0.6;
|
||||
sigma = 30;
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/blur-my-shell/applications" = {
|
||||
blur = false;
|
||||
brightness = 1.0;
|
||||
opacity = 217;
|
||||
whitelist = ["org.gnome.Console"];
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/blur-my-shell/coverflow-alt-tab" = {
|
||||
blur = false;
|
||||
pipeline = "pipeline_default";
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/blur-my-shell/dash-to-dock" = {
|
||||
blur = false;
|
||||
brightness = 0.6;
|
||||
pipeline = "pipeline_default_rounded";
|
||||
sigma = 30;
|
||||
static-blur = false;
|
||||
style-dash-to-dock = 0;
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/blur-my-shell/lockscreen" = {
|
||||
pipeline = "pipeline_default";
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/blur-my-shell/overview" = {
|
||||
pipeline = "pipeline_default";
|
||||
style-components = 2;
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/blur-my-shell/panel" = {
|
||||
brightness = 0.6;
|
||||
force-light-text = false;
|
||||
pipeline = "pipeline_default";
|
||||
sigma = 30;
|
||||
static-blur = false;
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/blur-my-shell/screenshot" = {
|
||||
pipeline = "pipeline_default";
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/blur-my-shell/window-list" = {
|
||||
brightness = 0.6;
|
||||
sigma = 30;
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/bubblemail" = {
|
||||
newest-first = true;
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/quick-settings-audio-panel" = {
|
||||
create-applications-volume-sliders = true;
|
||||
create-balance-slider = false;
|
||||
create-mpris-controllers = false;
|
||||
create-perdevice-volume-sliders = false;
|
||||
group-applications-volume-sliders = true;
|
||||
panel-type = "merged-panel";
|
||||
};
|
||||
};
|
||||
}
|
||||
102
common/modules/home/dconf/gnome.nix
Normal file
102
common/modules/home/dconf/gnome.nix
Normal file
@@ -0,0 +1,102 @@
|
||||
{lib, ...}: {
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
accent-color = "red";
|
||||
clock-format = "24h";
|
||||
clock-show-seconds = true;
|
||||
color-scheme = "prefer-dark";
|
||||
cursor-size = 24;
|
||||
cursor-theme = "Bibata-Modern-Classic";
|
||||
font-antialiasing = "grayscale";
|
||||
font-hinting = "slight";
|
||||
gtk-theme = "Flat-Remix-GTK-Red-Darkest";
|
||||
icon-theme = "Papirus-Dark";
|
||||
show-battery-percentage = true;
|
||||
toolkit-accessibility = true;
|
||||
overlay-scrolling = true;
|
||||
};
|
||||
|
||||
"org/gnome/desktop/peripherals/mouse" = {
|
||||
accel-profile = "flat";
|
||||
natural-scroll = false;
|
||||
};
|
||||
|
||||
"org/gnome/desktop/peripherals/keyboard" = {
|
||||
numlock-state = true;
|
||||
};
|
||||
|
||||
"org/gnome/desktop/background" = {
|
||||
picture-options = "zoom";
|
||||
picture-uri = "file:///home/jax/.config/background";
|
||||
picture-uri-dark = "file:///home/jax/.config/background";
|
||||
};
|
||||
|
||||
"org/gnome/desktop/wm/keybindings" = {
|
||||
move-to-workspace-left = ["<Shift><Control><Super>Left"];
|
||||
move-to-workspace-right = ["<Shift><Control><Super>Right"];
|
||||
switch-to-workspace-left = ["<Control><Super>Left"];
|
||||
switch-to-workspace-right = ["<Control><Super>Right"];
|
||||
switch-windows = ["<Alt>Tab"];
|
||||
switch-windows-backward = ["<Shift><Alt>Tab"];
|
||||
toggle-fullscreen = ["<Super>F11"];
|
||||
};
|
||||
|
||||
"org/gnome/desktop/wm/preferences" = {
|
||||
button-layout = "appmenu:minimize,close";
|
||||
};
|
||||
|
||||
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||
custom-keybindings = lib.mkBefore [
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/"
|
||||
];
|
||||
};
|
||||
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
|
||||
binding = "<Control><Alt>t";
|
||||
command = "kgx";
|
||||
name = "Terminal";
|
||||
};
|
||||
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
|
||||
binding = "<Super>e";
|
||||
command = "nautilus";
|
||||
name = "Filus Managus";
|
||||
};
|
||||
|
||||
"org/gnome/mutter" = {
|
||||
attach-modal-dialogs = false;
|
||||
experimental-features = [
|
||||
"scale-monitor-framebuffer"
|
||||
"variable-refresh-rate"
|
||||
"xwayland-native-scaling"
|
||||
];
|
||||
};
|
||||
|
||||
"org/gnome/shell" = {
|
||||
disable-user-extensions = false;
|
||||
favorite-apps = [
|
||||
"vesktop.desktop"
|
||||
"org.gnome.Nautilus.desktop"
|
||||
"steam.desktop"
|
||||
"firefox.desktop"
|
||||
"org.telegram.desktop.desktop"
|
||||
"org.gnome.Console.desktop"
|
||||
"io.missioncenter.MissionCenter.desktop"
|
||||
"tidal-hifi.desktop"
|
||||
];
|
||||
};
|
||||
|
||||
"org/gnome/desktop/app-folders" = {
|
||||
folder-children = [];
|
||||
};
|
||||
|
||||
"org/gnome/desktop/datetime" = {
|
||||
automatic-timezone = true;
|
||||
};
|
||||
|
||||
"org/gnome/system/location" = {
|
||||
enabled = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
13
common/modules/home/default.nix
Normal file
13
common/modules/home/default.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
./dconf
|
||||
./desktop-files.nix
|
||||
./starship.nix
|
||||
./services.nix
|
||||
./zsh.nix
|
||||
];
|
||||
|
||||
xdg.enable = true;
|
||||
|
||||
home.stateVersion = "25.05";
|
||||
}
|
||||
31
common/modules/home/desktop-files.nix
Normal file
31
common/modules/home/desktop-files.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
xdg.dataFile."applications/clion.desktop".text = ''
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=CLion (Nix Shell)
|
||||
GenericName=C/C++ IDE from JetBrains
|
||||
Exec=sh -c "nix develop ${config.xdg.configHome}/nix-shells/cpp -c clion %f"
|
||||
Icon=clion
|
||||
Terminal=false
|
||||
Categories=Development;IDE;
|
||||
StartupWMClass=jetbrains-clion
|
||||
MimeType=text/x-c++src;text/x-c++hdr;text/x-csrc;text/x-chdr;
|
||||
'';
|
||||
|
||||
xdg.dataFile."applications/cisco-packet-tracer-9.desktop".text = ''
|
||||
[Desktop Entry]
|
||||
StartupWMClass=PacketTracer
|
||||
Name=Cisco Packet Tracer 9.0.0
|
||||
Type=Application
|
||||
Categories=Education;
|
||||
Exec=env QT_STYLE_OVERRIDE=adwaita packettracer9 %f
|
||||
Icon=cisco-packet-tracer-9
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
MimeType=application/x-pkt;application/x-pka;application/x-pkz;application/x-pks;application/x-pksz;
|
||||
'';
|
||||
}
|
||||
41
common/modules/home/services.nix
Normal file
41
common/modules/home/services.nix
Normal file
@@ -0,0 +1,41 @@
|
||||
{pkgs, ...}: let
|
||||
devShellsDir = "$HOME/.config/nix-shells";
|
||||
nixConfigDir = "/etc/nixos";
|
||||
|
||||
syncScript = pkgs.writeShellScript "sync-all-repos" ''
|
||||
repos=("${devShellsDir}" "${nixConfigDir}")
|
||||
|
||||
for repo in "''${repos[@]}"; do
|
||||
echo "Syncing $repo..."
|
||||
if ! ${pkgs.git}/bin/git -C "$repo" pull --rebase --autostash; then
|
||||
${pkgs.libnotify}/bin/notify-send -u critical "Sync Failed" "Conflict or network error in $repo"
|
||||
else
|
||||
${pkgs.git}/bin/git -C "$repo" add -N . 2>/dev/null || true
|
||||
fi
|
||||
done
|
||||
'';
|
||||
in {
|
||||
systemd.user.services.sync-nix-repos = {
|
||||
Unit = {
|
||||
Description = "Background sync for Nix Config and Dev Shells";
|
||||
After = ["network-online.target"];
|
||||
Wants = ["network-online.target"];
|
||||
};
|
||||
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${syncScript}";
|
||||
PassEnvironment = ["DBUS_SESSION_BUS_ADDRESS" "DISPLAY"];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.timers.sync-nix-repos = {
|
||||
Unit.Description = "Hourly sync for all Nix repositories";
|
||||
Timer = {
|
||||
OnBootSec = "2m";
|
||||
OnUnitActiveSec = "1h";
|
||||
Persistent = true;
|
||||
};
|
||||
Install.WantedBy = ["timers.target"];
|
||||
};
|
||||
}
|
||||
102
common/modules/home/starship.nix
Normal file
102
common/modules/home/starship.nix
Normal file
@@ -0,0 +1,102 @@
|
||||
{lib, ...}: {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
settings = {
|
||||
format = lib.concatStrings [
|
||||
"$hostname"
|
||||
"\${custom.distrobox}"
|
||||
"$nix_shell"
|
||||
"$python"
|
||||
"$nodejs"
|
||||
"$rust"
|
||||
"$golang"
|
||||
"$php"
|
||||
"[](fg:#000000)"
|
||||
"[░▒▓](#FFFFFF)"
|
||||
"[ 🐺 ](bg:#FFFFFF fg:#1E91D6)"
|
||||
"[](bg:#0072BB fg:#FFFFFF)"
|
||||
"$directory"
|
||||
"[](fg:#0072BB bg:#E18335)"
|
||||
"$git_branch"
|
||||
"$git_status"
|
||||
"[](fg:#E18335 bg:#061A40)"
|
||||
"$time"
|
||||
"[ ](fg:#061A40)"
|
||||
"\n$character"
|
||||
];
|
||||
|
||||
hostname = {
|
||||
ssh_only = true;
|
||||
format = "[](fg:#1E91D6)[ $hostname](bg:#1E91D6 fg:#FFFFFF)[](fg:#1E91D6) ";
|
||||
};
|
||||
|
||||
custom.distrobox = {
|
||||
when = "printenv CONTAINER_ID";
|
||||
command = "echo $CONTAINER_ID";
|
||||
symbol = "";
|
||||
format = "[](fg:#FF5F00)[$symbol $output](bg:#FF5F00 fg:#FFFFFF)[](fg:#FF5F00) ";
|
||||
};
|
||||
|
||||
nix_shell = {
|
||||
symbol = "";
|
||||
format = "[](fg:#7EBAE4)[$symbol $state](bg:#7EBAE4 fg:#061A40)[](fg:#7EBAE4) ";
|
||||
};
|
||||
|
||||
python = {
|
||||
symbol = "";
|
||||
format = "[](fg:#4B8BBE)[$symbol $virtualenv $version](bg:#4B8BBE fg:#FFFFFF)[](fg:#4B8BBE) ";
|
||||
};
|
||||
|
||||
nodejs = {
|
||||
symbol = "";
|
||||
format = "[](fg:#68A063)[$symbol $version](bg:#68A063 fg:#FFFFFF)[](fg:#68A063) ";
|
||||
};
|
||||
|
||||
rust = {
|
||||
symbol = "";
|
||||
format = "[](fg:#CE412B)[$symbol $version](bg:#CE412B fg:#FFFFFF)[](fg:#CE412B) ";
|
||||
};
|
||||
|
||||
golang = {
|
||||
symbol = "";
|
||||
format = "[](fg:#00ADD8)[$symbol $version](bg:#00ADD8 fg:#FFFFFF)[](fg:#00ADD8) ";
|
||||
};
|
||||
|
||||
php = {
|
||||
symbol = "";
|
||||
format = "[](fg:#8892BF)[$symbol $version](bg:#8892BF fg:#FFFFFF)[](fg:#8892BF) ";
|
||||
};
|
||||
|
||||
directory = {
|
||||
style = "fg:#e3e5e5 bg:#0072BB";
|
||||
format = "[ $path ]($style)";
|
||||
truncation_length = 3;
|
||||
substitutions = {
|
||||
"Documents" = " ";
|
||||
"Downloads" = " ";
|
||||
"Music" = " ";
|
||||
"Pictures" = " ";
|
||||
};
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
symbol = "";
|
||||
format = "[ $symbol $branch ](fg:#0072BB bg:#E18335)";
|
||||
};
|
||||
|
||||
git_status = {
|
||||
format = "[ $all_status$ahead_behind ](fg:#0072BB bg:#E18335)";
|
||||
};
|
||||
|
||||
time = {
|
||||
disabled = false;
|
||||
format = "[ $time ](fg:#a0a9cb bg:#061A40)";
|
||||
};
|
||||
|
||||
character = {
|
||||
success_symbol = "[❯](bold green)";
|
||||
error_symbol = "[❯](bold red)";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
85
common/modules/home/zsh.nix
Normal file
85
common/modules/home/zsh.nix
Normal file
@@ -0,0 +1,85 @@
|
||||
{config, ...}: {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
dotDir = "${config.xdg.configHome}/zsh";
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "robbyrussell";
|
||||
plugins = [
|
||||
"git"
|
||||
"docker"
|
||||
"docker-compose"
|
||||
"sudo"
|
||||
"vscode"
|
||||
"z"
|
||||
"colorize"
|
||||
];
|
||||
};
|
||||
|
||||
shellAliases = {
|
||||
adbauto = "adbauto_";
|
||||
adbpair = "adbpair_";
|
||||
};
|
||||
|
||||
sessionVariables = {
|
||||
LIBVIRT_DEFAULT_URI = "qemu:///system";
|
||||
ZSH_AUTOSUGGEST_STRATEGY = [
|
||||
"history"
|
||||
"completion"
|
||||
];
|
||||
};
|
||||
|
||||
initContent = ''
|
||||
zstyle ':completion:*' completer _complete _match _approximate
|
||||
zstyle ':completion:*:approximate:*' max-errors 1 numeric
|
||||
|
||||
zstyle ':completion:*' menu select
|
||||
|
||||
zstyle ':completion:*' list-colors "''${(s.:.)LS_COLORS}"
|
||||
zstyle ':completion:*:(scp|rsync):*' tag-order ' hosts:-ipaddr:ip\ address hosts:-host:host files'
|
||||
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost
|
||||
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'
|
||||
zstyle ':completion:*' matcher-list "" 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' '+l:|?=** r:|?=**'
|
||||
|
||||
# Path Management
|
||||
export PATH="$HOME/.local/bin:/usr/local/LinkServer/:$PATH"
|
||||
|
||||
# Dart Completion
|
||||
[[ -f /home/jax/.dart-cli-completion/zsh-config.zsh ]] && . /home/jax/.dart-cli-completion/zsh-config.zsh || true
|
||||
|
||||
if command -v nix-your-shell > /dev/null; then
|
||||
nix-your-shell zsh | source /dev/stdin
|
||||
fi
|
||||
|
||||
adbauto_() {
|
||||
local PORT=$(avahi-browse -rt _adb-tls-connect._tcp -p | grep '^=' | cut -d';' -f8,9 | head -n 1 | sed 's/;/ /' | awk '{print $2}')
|
||||
local IP=$(avahi-browse -rt _adb-tls-connect._tcp -p | grep '^=' | cut -d';' -f8,9 | head -n 1 | sed 's/;/ /' | awk '{print $1}')
|
||||
if [ -z "$PORT" ]; then
|
||||
echo "No Wireless ADB service found. Is Wireless Debugging on?"
|
||||
else
|
||||
echo "Connecting to $IP:$PORT..."
|
||||
adb connect $IP:$PORT
|
||||
fi
|
||||
}
|
||||
|
||||
adbpair_() {
|
||||
echo "Looking for Android pairing service..."
|
||||
local SERVICE=$(avahi-browse -rt _adb-tls-pairing._tcp -p | grep '^=' | head -n 1)
|
||||
if [ -z "$SERVICE" ]; then
|
||||
echo "Error: Pairing service not found. Make sure 'Pair device with pairing code' is open on your phone."
|
||||
return 1
|
||||
fi
|
||||
local IP=$(echo "$SERVICE" | cut -d';' -f8)
|
||||
local PORT=$(echo "$SERVICE" | cut -d';' -f9)
|
||||
echo "Found device at $IP:$PORT"
|
||||
adb pair "$IP:$PORT"
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
programs.starship.enable = true;
|
||||
}
|
||||
@@ -2,45 +2,40 @@
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
clion-flake,
|
||||
czkawka-master,
|
||||
solaar-master,
|
||||
fet,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
permittedInsecurePackages = [
|
||||
"ventoy-gtk3-1.1.10"
|
||||
"cisco-packet-tracer_9"
|
||||
];
|
||||
};
|
||||
|
||||
overlays = [
|
||||
(final: prev: {
|
||||
nautilus = prev.nautilus.overrideAttrs (nprev: {
|
||||
buildInputs =
|
||||
nprev.buildInputs
|
||||
++ (with pkgs.gst_all_1; [
|
||||
gst-plugins-good
|
||||
gst-plugins-bad
|
||||
gst-plugins-ugly
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gst-plugins-ugly
|
||||
]);
|
||||
});
|
||||
})
|
||||
(final: prev: {
|
||||
zenmonitor = prev.zenmonitor.overrideAttrs (oldAttrs: {
|
||||
env = (oldAttrs.env or { }) // {
|
||||
NIX_CFLAGS_COMPILE = "-std=gnu17";
|
||||
};
|
||||
});
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
abootimg
|
||||
alejandra
|
||||
android-tools
|
||||
anki
|
||||
appstream
|
||||
@@ -56,21 +51,20 @@
|
||||
btrfs-progs
|
||||
bubblemail
|
||||
bzip2
|
||||
cisco-packet-tracer_9
|
||||
curl
|
||||
fet.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
ddcutil
|
||||
discord
|
||||
distrobox
|
||||
docker-buildx
|
||||
docker-compose
|
||||
dog
|
||||
element-desktop
|
||||
eza
|
||||
fet.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
ffmpeg-full
|
||||
ffmpegthumbnailer
|
||||
file
|
||||
file-roller
|
||||
firmware-manager
|
||||
flat-remix-gnome
|
||||
flat-remix-gtk
|
||||
flatpak-xdg-utils
|
||||
@@ -78,6 +72,7 @@
|
||||
fuse
|
||||
fuse3
|
||||
fwupd
|
||||
gemini-cli
|
||||
gimp
|
||||
gnome-tweaks
|
||||
gnome.gvfs
|
||||
@@ -98,16 +93,18 @@
|
||||
iftop
|
||||
inkscape
|
||||
iotop
|
||||
#jetbrains.clion
|
||||
clion-flake.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
jq
|
||||
just
|
||||
killall
|
||||
kooha
|
||||
krita
|
||||
libgsf
|
||||
libnotify
|
||||
libreoffice
|
||||
libreoffice-fresh
|
||||
libsForQt5.qtstyleplugins
|
||||
linux-firmware
|
||||
lm_sensors
|
||||
logitech-udev-rules
|
||||
lrzip
|
||||
lsof
|
||||
lz4
|
||||
@@ -117,12 +114,13 @@
|
||||
mesa-demos
|
||||
mission-center
|
||||
ncdu
|
||||
networkmanager-openconnect
|
||||
nil
|
||||
nixfmt
|
||||
nix-output-monitor
|
||||
nix-your-shell
|
||||
ntfs3g
|
||||
nufraw-thumbnailer
|
||||
obsidian
|
||||
openrgb-with-all-plugins
|
||||
papirus-icon-theme
|
||||
pbzip2
|
||||
pciutils
|
||||
@@ -131,15 +129,14 @@
|
||||
poppler-utils
|
||||
prismlauncher-unwrapped
|
||||
protonup-qt
|
||||
pulseaudio
|
||||
rquickshare
|
||||
saber
|
||||
solaar-master.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
logitech-udev-rules
|
||||
scrcpy
|
||||
screen
|
||||
seafile-client
|
||||
smartmontools
|
||||
starship
|
||||
solaar
|
||||
sushi
|
||||
telegram-desktop
|
||||
testdisk
|
||||
@@ -148,6 +145,8 @@
|
||||
tldr
|
||||
trash-cli
|
||||
tree
|
||||
treefmt
|
||||
tumbler
|
||||
unrar
|
||||
unzip
|
||||
usbutils
|
||||
@@ -155,26 +154,29 @@
|
||||
vesktop
|
||||
vkbasalt
|
||||
vlc
|
||||
vscode-fhs
|
||||
(vscode.fhsWithPackages (
|
||||
ps:
|
||||
with ps; [
|
||||
python3
|
||||
zlib
|
||||
gcc
|
||||
gnumake
|
||||
]
|
||||
))
|
||||
webp-pixbuf-loader
|
||||
wev
|
||||
wget
|
||||
which
|
||||
wine
|
||||
wineWow64Packages.waylandFull
|
||||
wireshark
|
||||
tumbler
|
||||
xz
|
||||
yt-dlp
|
||||
zip
|
||||
zram-generator
|
||||
zsh-autosuggestions
|
||||
zsh-completions
|
||||
zsh-history-substring-search
|
||||
zsh-syntax-highlighting
|
||||
zstd
|
||||
zulu
|
||||
zulu8
|
||||
zulu17
|
||||
zulu8
|
||||
];
|
||||
|
||||
fonts = {
|
||||
|
||||
@@ -3,13 +3,47 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
programs = {
|
||||
bat.enable = true;
|
||||
dconf.profiles.gdm.databases = [
|
||||
{
|
||||
settings = {
|
||||
"org/gnome/desktop/peripherals/keyboard" = {
|
||||
numlock-state = true;
|
||||
remember-numlock-state = true;
|
||||
};
|
||||
|
||||
"org/gnome/desktop/peripherals/mouse" = {
|
||||
speed-profile = "flat";
|
||||
};
|
||||
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
gtk-theme = "Flat-Remix-GTK-Red-Darkest";
|
||||
icon-theme = "Papirus-Dark";
|
||||
cursor-theme = "Bibata-Modern-Classic";
|
||||
clock-format = "24h";
|
||||
};
|
||||
|
||||
"org/gnome/shell/portal" = {
|
||||
color-scheme = "prefer-dark";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
appimage = {
|
||||
enable = true;
|
||||
binfmt = true;
|
||||
};
|
||||
|
||||
fuse = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
zsh.enable = true;
|
||||
gamemode.enable = true;
|
||||
|
||||
firefox = {
|
||||
enable = true;
|
||||
languagePacks = [
|
||||
@@ -19,8 +53,14 @@
|
||||
];
|
||||
};
|
||||
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
weylus.enable = true;
|
||||
gamescope.enable = true;
|
||||
virt-manager.enable = true;
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
@@ -38,7 +78,7 @@
|
||||
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
libraries = with pkgs; [ ];
|
||||
libraries = with pkgs; [];
|
||||
};
|
||||
|
||||
steam = {
|
||||
|
||||
@@ -3,14 +3,16 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
services = {
|
||||
sshd.enable = true;
|
||||
displayManager.gdm.enable = true;
|
||||
desktopManager.gnome.enable = true;
|
||||
|
||||
blueman.enable = true;
|
||||
|
||||
geoclue2.enable = true;
|
||||
|
||||
xserver = {
|
||||
enable = true;
|
||||
excludePackages = with pkgs; [
|
||||
@@ -67,7 +69,7 @@
|
||||
|
||||
btrfs = {
|
||||
autoScrub = {
|
||||
enable = true;
|
||||
enable = lib.any (fs: fs.fsType == "btrfs") (lib.attrValues config.fileSystems);
|
||||
interval = "monthly";
|
||||
};
|
||||
};
|
||||
@@ -77,6 +79,23 @@
|
||||
interval = "weekly";
|
||||
};
|
||||
|
||||
kmscon = {
|
||||
enable = true;
|
||||
fonts = [
|
||||
{
|
||||
name = "FiraCode Nerd Font Mono";
|
||||
package = pkgs.nerd-fonts.fira-code;
|
||||
}
|
||||
];
|
||||
useXkbConfig = true;
|
||||
hwRender = true;
|
||||
};
|
||||
|
||||
fwupd.enable = true;
|
||||
|
||||
udev.packages = with pkgs; [
|
||||
platformio-core.udev
|
||||
openocd
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./modules
|
||||
@@ -65,6 +63,4 @@
|
||||
|
||||
amdgpu.opencl.enable = true;
|
||||
};
|
||||
|
||||
system.stateVersion = "25.05";
|
||||
}
|
||||
|
||||
@@ -7,16 +7,14 @@
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
initrd = {
|
||||
kernelModules = [ ];
|
||||
kernelModules = [];
|
||||
verbose = false;
|
||||
availableKernelModules = [
|
||||
"nvme"
|
||||
@@ -37,7 +35,8 @@
|
||||
pkgs.linuxKernel.packages.linux_xanmod_latest.zenpower
|
||||
];
|
||||
|
||||
blacklistedKernelModules = [ "k10temp" ];
|
||||
blacklistedKernelModules = ["k10temp"];
|
||||
|
||||
kernelParams = [
|
||||
"amdgpu.seamless=1"
|
||||
"rd.udev.log_priority=3"
|
||||
@@ -95,7 +94,6 @@
|
||||
"compress=zstd:10"
|
||||
"autodefrag"
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
fileSystems."/var" = {
|
||||
@@ -181,7 +179,7 @@
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
swapDevices = [];
|
||||
|
||||
# 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
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
{...}: {
|
||||
imports = [
|
||||
./flatpak.nix
|
||||
./gdm-monitors.nix
|
||||
./gnome.nix
|
||||
./packages.nix
|
||||
./programs.nix
|
||||
./services.nix
|
||||
./vm.nix
|
||||
];
|
||||
}
|
||||
|
||||
7
desktop/modules/flatpak.nix
Normal file
7
desktop/modules/flatpak.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
}
|
||||
@@ -3,9 +3,7 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
}: let
|
||||
gdmMonitorsXml = pkgs.writeText "gdm-monitor.xml" ''
|
||||
<monitors version="2">
|
||||
<configuration>
|
||||
@@ -292,8 +290,7 @@ let
|
||||
</configuration>
|
||||
</monitors>
|
||||
'';
|
||||
in
|
||||
{
|
||||
in {
|
||||
systemd.tmpfiles.rules = [
|
||||
"L+ /run/gdm/.config/monitors.xml - - - - ${gdmMonitorsXml}"
|
||||
];
|
||||
|
||||
12
desktop/modules/gnome.nix
Normal file
12
desktop/modules/gnome.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
environment = {
|
||||
systemPackages = with pkgs.gnomeExtensions; [
|
||||
control-monitor-brightness-and-volume-with-ddcutil
|
||||
];
|
||||
};
|
||||
}
|
||||
3
desktop/modules/home/dconf/apps.nix
Normal file
3
desktop/modules/home/dconf/apps.nix
Normal file
@@ -0,0 +1,3 @@
|
||||
{...}: {
|
||||
dconf.settings = {};
|
||||
}
|
||||
7
desktop/modules/home/dconf/default.nix
Normal file
7
desktop/modules/home/dconf/default.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
./apps.nix
|
||||
./extensions.nix
|
||||
./gnome.nix
|
||||
];
|
||||
}
|
||||
3
desktop/modules/home/dconf/extensions.nix
Normal file
3
desktop/modules/home/dconf/extensions.nix
Normal file
@@ -0,0 +1,3 @@
|
||||
{...}: {
|
||||
dconf.settings = {};
|
||||
}
|
||||
22
desktop/modules/home/dconf/gnome.nix
Normal file
22
desktop/modules/home/dconf/gnome.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{lib, ...}: {
|
||||
dconf.settings = {
|
||||
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||
custom-keybindings = lib.mkAfter [
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/"
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/"
|
||||
];
|
||||
};
|
||||
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = {
|
||||
binding = "<Shift><Control><Alt>Home";
|
||||
command = "ddcutil setvcp 10 + 10";
|
||||
name = "Bright Up";
|
||||
};
|
||||
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3" = {
|
||||
binding = "<Shift><Control><Alt>End";
|
||||
command = "ddcutil setvcp 10 - 10";
|
||||
name = "Bright Down";
|
||||
};
|
||||
};
|
||||
}
|
||||
5
desktop/modules/home/default.nix
Normal file
5
desktop/modules/home/default.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
./dconf
|
||||
];
|
||||
}
|
||||
@@ -3,12 +3,8 @@
|
||||
pkgs,
|
||||
lib,
|
||||
czkawka-master,
|
||||
solaar-master,
|
||||
fet,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
amdgpu_top
|
||||
arch-install-scripts
|
||||
@@ -17,25 +13,11 @@
|
||||
fahclient
|
||||
lact
|
||||
nvtopPackages.amd
|
||||
openrgb-with-all-plugins
|
||||
radeontop
|
||||
rocmPackages.rocm-smi
|
||||
rocmPackages.rocminfo
|
||||
swtpm
|
||||
zenmonitor
|
||||
];
|
||||
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
fira-code
|
||||
font-awesome
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.fira-mono
|
||||
nerd-fonts.symbols-only
|
||||
nerd-fonts.ubuntu-mono
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-color-emoji
|
||||
ubuntu-classic
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,45 +3,8 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
programs = {
|
||||
dconf.profiles.gdm.databases = [
|
||||
{
|
||||
settings = {
|
||||
"org/gnome/desktop/peripherals/keyboard" = {
|
||||
numlock-state = true;
|
||||
remember-numlock-state = true;
|
||||
};
|
||||
|
||||
"org/gnome/desktop/peripherals/mouse" = {
|
||||
speed-profile = "flat";
|
||||
speed = -0.5;
|
||||
};
|
||||
|
||||
"org/gnome/desktop/peripherals/touchpad" = {
|
||||
speed-profile = "flat";
|
||||
speed = -0.5;
|
||||
};
|
||||
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
gtk-theme = "Flat-Remix-GTK-Red-Darkest";
|
||||
icon-theme = "Papirus-Dark";
|
||||
cursor-theme = "Bibata-Modern-Classic";
|
||||
clock-format = "24h";
|
||||
};
|
||||
|
||||
"org/gnome/shell/portal" = {
|
||||
color-scheme = "prefer-dark";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
virt-manager.enable = true;
|
||||
|
||||
ccache = {
|
||||
enable = true;
|
||||
cacheDir = "/media/data/.ccache";
|
||||
@@ -50,12 +13,12 @@
|
||||
obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
wlrobs
|
||||
obs-backgroundremoval
|
||||
obs-gstreamer
|
||||
obs-pipewire-audio-capture
|
||||
obs-vaapi
|
||||
obs-gstreamer
|
||||
obs-vkcapture
|
||||
wlrobs
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
zram-generator
|
||||
];
|
||||
|
||||
21
desktop/modules/vm.nix
Normal file
21
desktop/modules/vm.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{lib, ...}: {
|
||||
virtualisation.vmVariant = {
|
||||
virtualisation = {
|
||||
memorySize = 8192;
|
||||
cores = 4;
|
||||
graphics = true;
|
||||
diskSize = 20 * 1024;
|
||||
qemu.options = [
|
||||
"-device virtio-vga-gl"
|
||||
"-display gtk,gl=on"
|
||||
"-cpu host"
|
||||
];
|
||||
};
|
||||
|
||||
users.users.jax.password = "nixos";
|
||||
services.displayManager.autoLogin = {
|
||||
enable = true;
|
||||
user = "jax";
|
||||
};
|
||||
};
|
||||
}
|
||||
147
flake.lock
generated
147
flake.lock
generated
@@ -1,10 +1,24 @@
|
||||
{
|
||||
"nodes": {
|
||||
"clion-flake": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"path": "./common/flakes/clion-flake",
|
||||
"type": "path"
|
||||
},
|
||||
"original": {
|
||||
"path": "./common/flakes/clion-flake",
|
||||
"type": "path"
|
||||
},
|
||||
"parent": []
|
||||
},
|
||||
"czkawka-master": {
|
||||
"inputs": {
|
||||
"czkawka-src": "czkawka-src",
|
||||
"naersk": "naersk",
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"path": "./common/flakes/czkawka-master",
|
||||
@@ -19,11 +33,11 @@
|
||||
"czkawka-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1771313751,
|
||||
"narHash": "sha256-0mqQAmaa7N7NgOKUgstRed5Ss6PcbfJzh/vOsS9Dg6c=",
|
||||
"lastModified": 1774297847,
|
||||
"narHash": "sha256-iEgM0Wjhyy2H6HxnqY7YDAHiuDIUaw5rmsE1Zsij/nk=",
|
||||
"owner": "qarmin",
|
||||
"repo": "czkawka",
|
||||
"rev": "f665807d2e06b72950e0c0f1857ab9efefc32ac6",
|
||||
"rev": "7680c07130f7bbfb5019e328362eaaebdce7aece",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -58,7 +72,7 @@
|
||||
"fet": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"path": "./common/flakes/fet",
|
||||
@@ -88,21 +102,23 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"lastModified": 1774626137,
|
||||
"narHash": "sha256-1WelwA45Xm4glTG8R9IX9jYeFKDG2HbR79jAauLezUE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "9df3a639007cfe0d074433f7fc225ea94f877d08",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@@ -145,11 +161,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1771008912,
|
||||
"narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
|
||||
"lastModified": 1774386573,
|
||||
"narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a82ccc39b39b621151d6732718e3e250109076fa",
|
||||
"rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -161,11 +177,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1771008912,
|
||||
"narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
|
||||
"lastModified": 1774386573,
|
||||
"narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a82ccc39b39b621151d6732718e3e250109076fa",
|
||||
"rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -177,27 +193,11 @@
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1771353015,
|
||||
"narHash": "sha256-gvMwFEdFCM2zFxLVDaAbhV2N9zK0IW/RceBundHUdZs=",
|
||||
"lastModified": 1774386573,
|
||||
"narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "931ef4db402cdab9dfe66fe4a2b01d50f6fe435d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable-small",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1771008912,
|
||||
"narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a82ccc39b39b621151d6732718e3e250109076fa",
|
||||
"rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -207,13 +207,30 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1774612448,
|
||||
"narHash": "sha256-+uVDNwxihd82I6aZTgNvIXqFyLcfUBkg/Y0A8UBgycg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b55b0e0c856ac73c7f507336780f97aa7a9746e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable-small",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"clion-flake": "clion-flake",
|
||||
"czkawka-master": "czkawka-master",
|
||||
"fet": "fet",
|
||||
"home-manager": "home-manager",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"solaar-master": "solaar-master"
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
@@ -233,39 +250,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"solaar-master": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"solaar-src": "solaar-src"
|
||||
},
|
||||
"locked": {
|
||||
"path": "./common/flakes/solaar-master",
|
||||
"type": "path"
|
||||
},
|
||||
"original": {
|
||||
"path": "./common/flakes/solaar-master",
|
||||
"type": "path"
|
||||
},
|
||||
"parent": []
|
||||
},
|
||||
"solaar-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1770306649,
|
||||
"narHash": "sha256-IEGTggLf2UzXAqCZQm4R0ogohQJHm+sKXEnJJVhM1r8=",
|
||||
"owner": "pwr-Solaar",
|
||||
"repo": "Solaar",
|
||||
"rev": "42e0e391b525695a3c959351df48c92e8171585c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "pwr-Solaar",
|
||||
"ref": "master",
|
||||
"repo": "Solaar",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
@@ -280,21 +264,6 @@
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
||||
50
flake.nix
50
flake.nix
@@ -2,22 +2,25 @@
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small";
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak";
|
||||
czkawka-master.url = "path:./common/flakes/czkawka-master";
|
||||
solaar-master.url = "path:./common/flakes/solaar-master";
|
||||
fet.url = "path:./common/flakes/fet";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
czkawka-master.url = "path:./common/flakes/czkawka-master";
|
||||
fet.url = "path:./common/flakes/fet";
|
||||
clion-flake.url = "path:./common/flakes/clion-flake";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
nix-flatpak,
|
||||
home-manager,
|
||||
...
|
||||
}@inputs:
|
||||
let
|
||||
specialArgs = { inherit (inputs) czkawka-master solaar-master fet; };
|
||||
in
|
||||
{
|
||||
} @ inputs: let
|
||||
specialArgs = {inherit (inputs) czkawka-master fet clion-flake;};
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
epiquev2 = nixpkgs.lib.nixosSystem {
|
||||
inherit specialArgs;
|
||||
@@ -26,6 +29,20 @@
|
||||
./common
|
||||
./desktop
|
||||
nix-flatpak.nixosModules.nix-flatpak
|
||||
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
users.jax = {
|
||||
imports = [
|
||||
./common/modules/home
|
||||
./desktop/modules/home
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
@@ -36,6 +53,19 @@
|
||||
./common
|
||||
./laptop
|
||||
nix-flatpak.nixosModules.nix-flatpak
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
users.jax = {
|
||||
imports = [
|
||||
./common/modules/home
|
||||
./laptop/modules/home
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./modules
|
||||
@@ -26,7 +24,13 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = "25.05";
|
||||
graphics = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
vaapi-intel-hybrid
|
||||
vpl-gpu-rt
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,9 +7,7 @@
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
@@ -23,11 +21,13 @@
|
||||
"uas"
|
||||
"sd_mod"
|
||||
];
|
||||
kernelModules = [ ];
|
||||
|
||||
kernelModules = [];
|
||||
};
|
||||
|
||||
kernelModules = [ "kvm-intel" ];
|
||||
extraModulePackages = [ ];
|
||||
kernelModules = ["kvm-intel"];
|
||||
extraModulePackages = [];
|
||||
resumeDevice = "/dev/disk/by-uuid/bea07563-dc23-415b-b12f-ba53138bd492";
|
||||
|
||||
kernelParams = [
|
||||
"snd_hda_intel.power_save=1"
|
||||
@@ -109,7 +109,6 @@
|
||||
options = [
|
||||
"defaults"
|
||||
];
|
||||
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
{...}: {
|
||||
imports = [
|
||||
./attic.nix
|
||||
./flatpak.nix
|
||||
./gnome.nix
|
||||
./packages.nix
|
||||
./programs.nix
|
||||
./services.nix
|
||||
|
||||
7
laptop/modules/flatpak.nix
Normal file
7
laptop/modules/flatpak.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
}
|
||||
11
laptop/modules/gnome.nix
Normal file
11
laptop/modules/gnome.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
environment = {
|
||||
systemPackages = with pkgs.gnomeExtensions; [
|
||||
];
|
||||
};
|
||||
}
|
||||
13
laptop/modules/home/dconf/apps.nix
Normal file
13
laptop/modules/home/dconf/apps.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{...}: {
|
||||
dconf.settings = {
|
||||
"org/gnome/Console" = {
|
||||
custom-font = "FiraCode Nerd Font Mono 11";
|
||||
use-system-font = false;
|
||||
};
|
||||
|
||||
"org/gnome/TextEditor" = {
|
||||
custom-font = "Fira Code weight=450 11";
|
||||
use-system-font = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
7
laptop/modules/home/dconf/default.nix
Normal file
7
laptop/modules/home/dconf/default.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
./apps.nix
|
||||
./extensions.nix
|
||||
./gnome.nix
|
||||
];
|
||||
}
|
||||
3
laptop/modules/home/dconf/extensions.nix
Normal file
3
laptop/modules/home/dconf/extensions.nix
Normal file
@@ -0,0 +1,3 @@
|
||||
{...}: {
|
||||
dconf.settings = {};
|
||||
}
|
||||
10
laptop/modules/home/dconf/gnome.nix
Normal file
10
laptop/modules/home/dconf/gnome.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{...}: {
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/peripherals/touchpad" = {
|
||||
click-method = "areas";
|
||||
disable-while-typing = true;
|
||||
speed = 0.19548872180451138;
|
||||
two-finger-scrolling-enabled = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
5
laptop/modules/home/default.nix
Normal file
5
laptop/modules/home/default.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
./dconf
|
||||
];
|
||||
}
|
||||
@@ -1,6 +1,13 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
btop
|
||||
gnome-power-manager
|
||||
intel-gpu-tools
|
||||
nvtopPackages.intel
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,6 +1,2 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
{...}: {
|
||||
}
|
||||
|
||||
@@ -1,18 +1,51 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.thermald.enable = true; # Prevents overheating/throttling
|
||||
{pkgs, ...}: {
|
||||
services.thermald.enable = true;
|
||||
services.power-profiles-daemon.enable = false;
|
||||
services.tlp = {
|
||||
enable = true;
|
||||
pd.enable = true;
|
||||
|
||||
settings = {
|
||||
TLP_AUTO_SWITCH = 1;
|
||||
|
||||
CPU_DRIVER_OPMODE_ON_AC = "active";
|
||||
CPU_DRIVER_OPMODE_ON_BAT = "active";
|
||||
CPU_DRIVER_OPMODE_ON_SAV = "active";
|
||||
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||
CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power";
|
||||
CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance";
|
||||
CPU_MIN_PERF_ON_BAT = 0;
|
||||
CPU_MIN_PERF_ON_BAT = 15;
|
||||
CPU_MAX_PERF_ON_BAT = 80;
|
||||
|
||||
WIFI_PWR_ON_AC = "off";
|
||||
WIFI_PWR_ON_BAT = "on";
|
||||
|
||||
MEM_SLEEP_ON_BAT = "deep";
|
||||
};
|
||||
};
|
||||
|
||||
services.logind = {
|
||||
settings = {
|
||||
Login = {
|
||||
HandleLidSwitch = "suspend-then-hibernate";
|
||||
HandleLidSwitchExternalPower = "suspend";
|
||||
HandleLidSwitchDocked = "ignore";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.sleep.settings.Sleep = {
|
||||
HibernateDelaySec = "5min";
|
||||
};
|
||||
|
||||
systemd.services.disable-problematic-wakeup = {
|
||||
description = "Disable only specific noisy wakeup sources";
|
||||
wantedBy = ["multi-user.target"];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${pkgs.bash}/bin/bash -c 'for device in XHC RP09 RP10 RP13; do if grep -q \"$device.*enabled\" /proc/acpi/wakeup; then echo $device > /proc/acpi/wakeup; fi; done'";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
3
treefmt.toml
Normal file
3
treefmt.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
[formatter.nix]
|
||||
command = "alejandra"
|
||||
includes = ["*.nix"]
|
||||
Reference in New Issue
Block a user