Compare commits

...

67 Commits

Author SHA1 Message Date
841c3b2fbd Lower attic push jobs
server be fragile
2026-03-27 21:58:05 +01:00
a3cccd8751 Add flake for newer clion 2026-03-27 21:57:52 +01:00
d9478157fb Update cache key
- due to cache reset
- add job number to push
2026-03-27 20:45:33 +01:00
599be0b0e5 Actually add /etc/nix as well 2026-03-27 19:32:51 +01:00
0a07190179 Add a service to automatically fetch devshells 2026-03-27 19:26:56 +01:00
401490f581 Add kmscon 2026-03-26 19:29:57 +01:00
0c59ee08ef Update lockfile 2026-03-25 01:38:02 +01:00
5b71825d70 packages.nix: add Blueman 2026-03-24 18:08:11 +01:00
4959baf11c Update FET to 7.8.1 2026-03-23 21:27:56 +01:00
b1eb8d16fc extensions: dash-to-dock:
- enable autohide-in-fullscreen
2026-03-23 21:24:49 +01:00
a4c34f9857 Reformat with alejandra 2026-03-23 21:24:20 +01:00
463ce1c6f9 Readd obsidian 2026-03-23 07:13:43 +01:00
0ce1ea44df Remove obsidian for now
- due to dependency on EOL Electron
2026-03-21 12:13:36 +01:00
ea1f1e4e2c Remove nixfmt 2026-03-16 00:46:07 +01:00
c384c85035 Add quick settings volume mixer 2026-03-15 17:38:05 +01:00
a81caa8e1b Formatter: Switch to alejandra
I like its style better
2026-03-15 17:37:50 +01:00
1f1a76b92d Use nom for laptop build progress
+ add nix-your-shell
2026-03-15 11:08:32 +01:00
d30200f081 Formatting + misc changes 2026-03-12 00:15:38 +01:00
6ff3ca400b Add new justfile options 2026-03-09 15:01:37 +01:00
2af4cbf42b Show venv in prompt if available 2026-03-09 09:18:40 +01:00
87985b6384 Add gemini-cli 2026-03-09 09:18:06 +01:00
84915990f9 Make pio work in vscode 2026-03-05 16:16:23 +01:00
f9a4b97ab2 Update option for systemd sleep 2026-03-04 17:12:37 +01:00
6926a7a9a6 Add theme override for pt
Dark theme messes up the UI
Also update pt
2026-03-04 17:12:12 +01:00
0551560602 Update lock 2026-03-03 17:57:39 +01:00
a7f46adfdf Commonize gdm settings 2026-03-03 17:43:08 +01:00
f2dbee1ee8 Enable gnome location 2026-03-03 15:21:30 +01:00
dbde683d41 Add direnv zsh hook 2026-03-03 15:21:02 +01:00
3e9907c936 Increase minimal perf on battery
it was pretty laggy in battery saver
2026-03-03 14:08:58 +01:00
16b8b699d1 Update zsh, starship config 2026-03-02 18:06:29 +01:00
d8ee1a648d Update prompt 2026-03-02 12:58:21 +01:00
da228b499f Set console, texteditor font size for laptop 2026-03-02 09:51:56 +01:00
7e1c8c167e Remove gnome app list folders
.. finally. Why do they need to be there by default?
2026-03-02 06:47:06 +01:00
db06a663ec Update lockfile 2026-03-02 06:29:30 +01:00
5008192cc9 Add intel codecs 2026-03-02 06:21:29 +01:00
4570081b22 Commonize virt-manager 2026-03-02 06:21:20 +01:00
c08b8b2ae0 Move clion desktop file to hm 2026-03-01 09:12:10 +01:00
6147d3ca27 Fix up justfile.. again 2026-03-01 08:43:43 +01:00
d8ddf42910 Improve prompt, justfile 2026-03-01 08:36:23 +01:00
956ace75b0 Implement home-manager 2026-03-01 08:19:46 +01:00
689efaa75b Update lockfile 2026-02-28 13:44:35 +01:00
59b43a29c7 We small again 2026-02-27 21:48:04 +01:00
db20f6fee1 Switch to unstable for now 2026-02-27 12:41:51 +01:00
2f474c8413 Laptop: Add gnome power monitor 2026-02-27 12:34:38 +01:00
5bcaf7217a Commonize attic 2026-02-26 00:55:05 +01:00
d1e6f5d7af Use new wine pkg 2026-02-26 00:47:04 +01:00
9a0d6d06fe Add geoclue2 2026-02-25 18:12:17 +01:00
777f547501 Fixup suspend-then-hibernate 2026-02-25 01:29:56 +01:00
375ccff408 Add hibernate for laptop 2026-02-25 01:14:42 +01:00
84b57d81b5 Add a desktop file for CLion launched in a dev shell 2026-02-24 23:11:17 +01:00
8b5feff5b5 Add clion 2026-02-24 20:54:47 +01:00
658d722d17 Remove Krita, Anki for now
- Both fail to build
2026-02-24 19:57:48 +01:00
3c14c62256 Update FET to 7.7.7 2026-02-24 07:53:46 +01:00
46db890c53 Add openconnect NM integration 2026-02-23 20:42:09 +01:00
2476dfaa67 Remove solaar-master flake
- nixpkgs ver is new enough now
2026-02-23 20:41:43 +01:00
349ed2e891 Add wine64 2026-02-22 12:17:38 +01:00
8a956aa9a5 Zenmonitor now builds with sytem cc ver 2026-02-20 17:32:40 +01:00
4dbb21fc9e Add bt quick connect extension 2026-02-19 20:53:24 +01:00
41d4d204de decommonize ddcutil ext 2026-02-19 20:44:19 +01:00
21a403c3f4 Add intel monitoring tools 2026-02-19 18:59:21 +01:00
6d39b13483 mucho updato 2026-02-19 18:38:18 +01:00
2fb0e31be8 Acc PacketTracer 2026-02-19 16:16:39 +01:00
e58d0d2ce9 Cleanup + add laptop packages 2026-02-19 15:49:03 +01:00
b7ce19d338 Decommonize OBS 2026-02-19 13:35:32 +01:00
1bed41fad3 Remove unused apps 2026-02-19 00:14:43 +01:00
4231c63c14 Update lock 2026-02-18 23:04:45 +01:00
398fa0f195 Commonize stateVersion 2026-02-18 19:50:56 +01:00
55 changed files with 1209 additions and 456 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
result
*.qcow2

32
Justfile Normal file
View 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

View File

@@ -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,20 +120,24 @@
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 ++ [
"--enable-sixaxis"
];
configureFlags =
old.configureFlags
++ [
"--enable-sixaxis"
];
});
powerOnBoot = true;
@@ -154,6 +174,7 @@
"flakes"
"nix-command"
];
warn-dirty = false;
};

View 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];
});
};
}

View File

@@ -7,79 +7,75 @@
url = "github:qarmin/czkawka";
flake = false;
};
naersk = {
url = "github:nix-community/naersk";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
nixpkgs,
czkawka-src,
naersk,
}:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
naersk-lib = pkgs.callPackage naersk { };
outputs = {
self,
nixpkgs,
czkawka-src,
naersk,
}: let
system = "x86_64-linux";
pkgs = import nixpkgs {inherit system;};
naersk-lib = pkgs.callPackage naersk {};
nativeBuildInputs = with pkgs; [
pkg-config
cmake
makeWrapper
cargo
rustc
];
nativeBuildInputs = with pkgs; [
cargo
cmake
makeWrapper
pkg-config
rustc
];
runtimeLibs = with pkgs; [
wayland
libxkbcommon
libglvnd
fontconfig
libX11
libXcursor
libXi
libXrandr
];
runtimeLibs = with pkgs; [
fontconfig
libglvnd
libX11
libXcursor
libXi
libxkbcommon
libXrandr
wayland
];
in {
packages.${system}.default = naersk-lib.buildPackage {
pname = "krokiet";
version = "master";
src = czkawka-src;
in
{
packages.${system}.default = naersk-lib.buildPackage {
pname = "krokiet";
version = "master";
src = czkawka-src;
nativeBuildInputs = nativeBuildInputs;
buildInputs = runtimeLibs;
nativeBuildInputs = nativeBuildInputs;
buildInputs = runtimeLibs;
cargoBuildOptions =
x:
x
++ [
"-p"
"krokiet"
];
buildAndCheckFeatures = [
"winit_wayland"
"winit_x11"
cargoBuildOptions = x:
x
++ [
"-p"
"krokiet"
];
RUSTFLAGS = "-C target-cpu=native";
NIX_CFLAGS_COMPILE = "-march=native -mtune=native";
buildAndCheckFeatures = [
"winit_wayland"
"winit_x11"
];
postInstall = ''
wrapProgram $out/bin/krokiet \
--prefix LD_LIBRARY_PATH : ${pkgs.lib.makeLibraryPath runtimeLibs}
RUSTFLAGS = "-C target-cpu=native";
NIX_CFLAGS_COMPILE = "-march=native -mtune=native";
install -Dm444 -t $out/share/applications data/io.github.qarmin.krokiet.desktop
postInstall = ''
wrapProgram $out/bin/krokiet \
--prefix LD_LIBRARY_PATH : ${pkgs.lib.makeLibraryPath runtimeLibs}
install -Dm444 -t $out/share/icons/hicolor/scalable/apps data/icons/io.github.qarmin.krokiet.svg \
install -Dm444 -t $out/share/applications data/io.github.qarmin.krokiet.desktop
install -Dm444 -t $out/share/metainfo data/io.github.qarmin.krokiet.metainfo.xml
'';
};
install -Dm444 -t $out/share/icons/hicolor/scalable/apps data/icons/io.github.qarmin.krokiet.svg \
install -Dm444 -t $out/share/metainfo data/io.github.qarmin.krokiet.metainfo.xml
'';
};
};
}

View File

@@ -6,37 +6,34 @@
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{
self,
nixpkgs,
flake-utils,
}:
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 = ''

View File

@@ -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;
};
}
);
}

View File

@@ -1,8 +1,4 @@
{
pkgs,
...
}:
{
{pkgs, ...}: {
boot = {
kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest;

View File

@@ -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="
];

View File

@@ -1,7 +1,6 @@
{ ... }:
{
{...}: {
imports = [
./attic.nix
./flatpak.nix
./gnome.nix
./packages.nix

View File

@@ -3,9 +3,7 @@
pkgs,
lib,
...
}:
{
}: {
services.flatpak = {
enable = true;
update.auto.enable = true;

View File

@@ -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;
}

View 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";
};
};
}

View File

@@ -0,0 +1,13 @@
{...}: {
imports = [
./apps.nix
./extensions.nix
./gnome.nix
];
dconf.settings = {
"system/locale" = {
region = "cs_CZ.UTF-8";
};
};
}

View 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";
};
};
}

View 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;
};
};
}

View File

@@ -0,0 +1,13 @@
{...}: {
imports = [
./dconf
./desktop-files.nix
./starship.nix
./services.nix
./zsh.nix
];
xdg.enable = true;
home.stateVersion = "25.05";
}

View 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;
'';
}

View 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"];
};
}

View 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)";
};
};
};
}

View 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;
}

View File

@@ -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 = {

View File

@@ -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 = {

View File

@@ -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
];
};
}

View File

@@ -3,9 +3,7 @@
pkgs,
lib,
...
}:
{
}: {
imports = [
./hardware-configuration.nix
./modules
@@ -65,6 +63,4 @@
amdgpu.opencl.enable = true;
};
system.stateVersion = "25.05";
}

View File

@@ -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

View File

@@ -1,10 +1,11 @@
{ ... }:
{
{...}: {
imports = [
./flatpak.nix
./gdm-monitors.nix
./gnome.nix
./packages.nix
./programs.nix
./services.nix
./vm.nix
];
}

View File

@@ -0,0 +1,7 @@
{
config,
pkgs,
lib,
...
}: {
}

View File

@@ -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
View File

@@ -0,0 +1,12 @@
{
config,
pkgs,
lib,
...
}: {
environment = {
systemPackages = with pkgs.gnomeExtensions; [
control-monitor-brightness-and-volume-with-ddcutil
];
};
}

View File

@@ -0,0 +1,3 @@
{...}: {
dconf.settings = {};
}

View File

@@ -0,0 +1,7 @@
{...}: {
imports = [
./apps.nix
./extensions.nix
./gnome.nix
];
}

View File

@@ -0,0 +1,3 @@
{...}: {
dconf.settings = {};
}

View 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";
};
};
}

View File

@@ -0,0 +1,5 @@
{...}: {
imports = [
./dconf
];
}

View File

@@ -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
];
};
}

View File

@@ -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
];
};
};

View File

@@ -3,9 +3,7 @@
pkgs,
lib,
...
}:
{
}: {
environment.systemPackages = with pkgs; [
zram-generator
];

21
desktop/modules/vm.nix Normal file
View 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
View File

@@ -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",

View File

@@ -2,42 +2,72 @@
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small";
nix-flatpak.url = "github:gmodena/nix-flatpak";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
czkawka-master.url = "path:./common/flakes/czkawka-master";
solaar-master.url = "path:./common/flakes/solaar-master";
fet.url = "path:./common/flakes/fet";
clion-flake.url = "path:./common/flakes/clion-flake";
};
outputs =
{
self,
nixpkgs,
nix-flatpak,
...
}@inputs:
let
specialArgs = { inherit (inputs) czkawka-master solaar-master fet; };
in
{
nixosConfigurations = {
epiquev2 = nixpkgs.lib.nixosSystem {
inherit specialArgs;
system = "x86_64-linux";
modules = [
./common
./desktop
nix-flatpak.nixosModules.nix-flatpak
];
};
outputs = {
self,
nixpkgs,
nix-flatpak,
home-manager,
...
} @ inputs: let
specialArgs = {inherit (inputs) czkawka-master fet clion-flake;};
in {
nixosConfigurations = {
epiquev2 = nixpkgs.lib.nixosSystem {
inherit specialArgs;
system = "x86_64-linux";
modules = [
./common
./desktop
nix-flatpak.nixosModules.nix-flatpak
dalaptop = nixpkgs.lib.nixosSystem {
inherit specialArgs;
system = "x86_64-linux";
modules = [
./common
./laptop
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
];
};
};
}
];
};
dalaptop = nixpkgs.lib.nixosSystem {
inherit specialArgs;
system = "x86_64-linux";
modules = [
./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
];
};
};
}
];
};
};
};
}

View File

@@ -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
];
};
};
}

View File

@@ -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"
];
}
];

View File

@@ -1,8 +1,7 @@
{ ... }:
{
{...}: {
imports = [
./attic.nix
./flatpak.nix
./gnome.nix
./packages.nix
./programs.nix
./services.nix

View File

@@ -0,0 +1,7 @@
{
config,
pkgs,
lib,
...
}: {
}

11
laptop/modules/gnome.nix Normal file
View File

@@ -0,0 +1,11 @@
{
config,
pkgs,
lib,
...
}: {
environment = {
systemPackages = with pkgs.gnomeExtensions; [
];
};
}

View 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;
};
};
}

View File

@@ -0,0 +1,7 @@
{...}: {
imports = [
./apps.nix
./extensions.nix
./gnome.nix
];
}

View File

@@ -0,0 +1,3 @@
{...}: {
dconf.settings = {};
}

View 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;
};
};
}

View File

@@ -0,0 +1,5 @@
{...}: {
imports = [
./dconf
];
}

View File

@@ -1,6 +1,13 @@
{
config,
pkgs,
lib,
...
}:
{
}: {
environment.systemPackages = with pkgs; [
btop
gnome-power-manager
intel-gpu-tools
nvtopPackages.intel
];
}

View File

@@ -1,6 +1,2 @@
{
...
}:
{
{...}: {
}

View File

@@ -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
View File

@@ -0,0 +1,3 @@
[formatter.nix]
command = "alejandra"
includes = ["*.nix"]