fixes and improvements

This commit is contained in:
2025-07-25 10:24:08 +02:00
parent e2f428bc64
commit 0f51bf1abb
46 changed files with 780 additions and 63 deletions
+61
View File
@@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1752480373,
"narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"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",
"version": 7
}
+22
View File
@@ -0,0 +1,22 @@
{
description = "Bare Python 3.10 dev shell without sphinx";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { nixpkgs, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
in {
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
python310
gcc
];
};
}
);
}
+25
View File
@@ -0,0 +1,25 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1752747119,
"narHash": "sha256-2Kp9St3Pbsmu+xMsobLcgzzUxPvZR7alVJWyuk2BAPc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fa0ef8a6bb1651aa26c939aeb51b5f499e86b0ec",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}
+44
View File
@@ -0,0 +1,44 @@
{
description = "Python 3.10 development environment";
outputs = { self, nixpkgs }:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
in {
devShells.${system}.default = (pkgs.buildFHSEnv {
name = "nvidia-fuck-you";
targetPkgs = pkgs: (with pkgs; [
python310
cudaPackages_12.cudatoolkit
python310Packages.pytorch-bin
python310Packages.pip
python310Packages.sphinx
gcc
linuxPackages.nvidia_x11
libGLU libGL
xorg.libXi xorg.libXmu freeglut
xorg.libXext xorg.libX11 xorg.libXv xorg.libXrandr zlib
ncurses5 stdenv.cc binutils
ffmpeg
# I daily drive the fish shell
# you can remove this, the default is bash
fish
]);
profile = ''
export LD_LIBRARY_PATH="${pkgs.linuxPackages.nvidia_x11}/lib"
export CUDA_PATH="${pkgs.cudatoolkit}"
export EXTRA_LDFLAGS="-L/lib -L${pkgs.linuxPackages.nvidia_x11}/lib"
export EXTRA_CCFLAGS="-I/usr/include"
'';
# again, you can remove this if you like bash
runScript = "fish";
}).env;
};
}
Generated
+105 -11
View File
@@ -1,5 +1,20 @@
{ {
"nodes": { "nodes": {
"flake-compat": {
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -7,33 +22,95 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1726989464, "lastModified": 1752544374,
"narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=", "narHash": "sha256-ReX0NG6nIAEtQQjLqeu1vUU2jjZuMlpymNtb4VQYeus=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176", "rev": "2e00ed310c218127e02ffcf28ddd4e0f669fde3e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-24.05", "ref": "release-25.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
}, },
"nix-alien": {
"inputs": {
"flake-compat": "flake-compat",
"nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1752566074,
"narHash": "sha256-hWPv6S5lFn6qOQdSL5Ad/m0mge2ALTC8WEAR7c6YWcE=",
"owner": "thiagokokada",
"repo": "nix-alien",
"rev": "ccf263b7ac5f44f89fd990594b09aa52de3d6585",
"type": "github"
},
"original": {
"owner": "thiagokokada",
"repo": "nix-alien",
"type": "github"
}
},
"nix-index-database": {
"inputs": {
"nixpkgs": [
"nix-alien",
"nixpkgs"
]
},
"locked": {
"lastModified": 1752441837,
"narHash": "sha256-FMH1OSSJp8Cx8MZHXz6KckxJGbCnVMotZNAH3v2WneU=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "839e02dece5845be3a322e507a79712b73a96ba2",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-index-database",
"type": "github"
}
},
"nix-ld": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1752564969,
"narHash": "sha256-4858rI66/cpCFZR+iHl6sklXZQ11f9WdlHG5n/ZAS/Q=",
"owner": "Mic92",
"repo": "nix-ld",
"rev": "5b4edcb0357c684b69f406c808646135ee985f8a",
"type": "github"
},
"original": {
"owner": "Mic92",
"repo": "nix-ld",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1751943650, "lastModified": 1751984180,
"narHash": "sha256-7orTnNqkGGru8Je6Un6mq1T8YVVU/O5kyW4+f9C1mZQ=", "narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "88983d4b665fb491861005137ce2b11a9f89f203", "rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "owner": "NixOS",
"ref": "nixos-25.05", "ref": "nixos-unstable",
"type": "indirect" "repo": "nixpkgs",
"type": "github"
} }
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
@@ -52,10 +129,27 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": {
"locked": {
"lastModified": 1751943650,
"narHash": "sha256-7orTnNqkGGru8Je6Un6mq1T8YVVU/O5kyW4+f9C1mZQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "88983d4b665fb491861005137ce2b11a9f89f203",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-25.05",
"type": "indirect"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"nixpkgs": "nixpkgs", "nix-alien": "nix-alien",
"nix-ld": "nix-ld",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable" "nixpkgs-unstable": "nixpkgs-unstable"
} }
} }
+30 -2
View File
@@ -4,11 +4,23 @@
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-25.05"; nixpkgs.url = "nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager/release-24.05";
home-manager.url = "github:nix-community/home-manager/release-25.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
nix-alien.url = "github:thiagokokada/nix-alien";
nix-ld.url = "github:Mic92/nix-ld";
# this line assume that you also have nixpkgs as an input
nix-ld.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { self, nixpkgs, home-manager, ... }: { outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, nix-ld, ... }:
let
system = "x86_64-linux"; # or aarch64-linux
pkgs = import nixpkgs { inherit system; };
in
{
nixosConfigurations = { nixosConfigurations = {
dev-vm = nixpkgs.lib.nixosSystem { dev-vm = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
@@ -20,6 +32,7 @@
./hosts/dev-vm/default.nix ./hosts/dev-vm/default.nix
]; ];
}; };
alex-laptop = nixpkgs.lib.nixosSystem { alex-laptop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { specialArgs = {
@@ -30,6 +43,21 @@
./hosts/alex-laptop/default.nix ./hosts/alex-laptop/default.nix
]; ];
}; };
alex-desktop = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit self system;
};
modules = [
./system/common.nix
./hosts/alex-desktop/default.nix
home-manager.nixosModules.home-manager
#nix-ld.nixosModules.nix-ld
# The module in this repository defines a new module under (programs.nix-ld.dev) instead of (programs.nix-ld)
# to not collide with the nixpkgs version.
#{ programs.nix-ld.dev.enable = true; }
];
};
}; };
}; };
} }
+90
View File
@@ -0,0 +1,90 @@
{ config, pkgs, lib, home-manager, ... }:
{
imports = [
../../system/modules/sway.nix
../../system/modules/dev.nix
../../system/modules/ml_dev.nix
../../system/modules/latex.nix
../../system/modules/docker.nix
../../system/modules/bluetooth.nix
../../system/modules/desktop_tools.nix
../../system/modules/keyd.nix
../../system/modules/entertainment.nix
../../system/modules/gaming.nix
../../system/cpu/amd
#../../system/gpu/nvidia/ampere
../../system/pc/ssd
../../system/pc/audio/pipewire.nix
../../system/modules/mullvad.nix
./hardware-configuration.nix
./user.nix
];
environment.systemPackages = with pkgs; [
keymapp
];
home-manager.useUserPackages = true;
home-manager.useGlobalPkgs = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.grub = {
enable = true;
version = 2;
efiSupport = true;
enableCryptodisk = true;
device = "nodev";
};
boot.initrd.luks.devices = {
crypted = {
device = "/dev/disk/by-uuid/58ae6681-79a6-418e-94e1-8ed298b19e7c";
preLVM = true;
};
};
boot.kernelParams = [ "kvm.enable_virt_at_load=0" ];
console.keyMap = "us-acentos";
hardware.graphics.enable = true;
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia = {
modesetting.enable = true;
powerManagement.enable = true;
powerManagement.finegrained = false;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
# hibernation setup
boot.resumeDevice = "/dev/disk/by-uuid/3876d89-a80d-4422-b852-d308fec68d4a";
# Suspend first
# Define time delay for hibernation
systemd.sleep.extraConfig = ''
HibernateDelaySec=30m
SuspendState=mem
'';
# networking and connection
networking.hostName = "alex-desktop";
hardware.bluetooth.powerOnBoot = true;
# time and localization
time.timeZone = "Europe/Berlin";
# users
programs.fish.enable = true;
users.users.alex = {
isNormalUser = true;
extraGroups = [ "wheel" "video" "network" "audio" "networkmanager" "vboxusers" "docker" ];
shell = pkgs.fish;
};
}
@@ -0,0 +1,41 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ "dm-snapshot" ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/9f30b01a-fe8d-42e5-925e-02b971513c32";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/8D94-3117";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/33876d89-a80d-4422-b852-d308fec68d4a"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+70
View File
@@ -0,0 +1,70 @@
{ config, lib, pkgs, home-manager, ... }:
{
home-manager.users.alex= {
imports = [
(import ../../user/common.nix )
../../user/modules/sway.nix
../../user/modules/mako.nix
../../user/modules/rofi.nix
../../user/modules/waybar.nix
../../user/modules/terminal.nix
../../user/modules/ranger.nix
../../user/modules/fish.nix
../../user/modules/alacritty.nix
../../user/modules/zellij.nix
../../user/modules/dev.nix
../../user/modules/dev_helpers.nix
];
home.packages = with pkgs; [
neovim
];
# set custom scree resolution and refresh rate
wayland.windowManager.sway = {
config= {
output = {
"HDMI-A-1"= {
resolution = "3840x2160@120HZ";
};
};
bars = [
{
command = "waybar";
mode = "hide";
hiddenState = "hide";
}
];
};
};
# place waybar on the bottom
programs.waybar = {
settings.main = lib.mkMerge [{
position = lib.mkForce "bottom";
ipc = true;
}];
};
# turn off swaylock background image
programs.swaylock.settings = lib.mkForce {
color = "000000";
};
services.swayidle.timeouts = [
{
timeout = 300;
command = "${pkgs.bash}/bin/bash -c '${pkgs.mpv}/bin/mpv --fs --no-audio --image-display-duration=inf --loop --no-osc /home/alex/nixos/resources/blank.png & echo $! > /home/alex/black_screen.pid;'";
#resumeCommand = "${pkgs.bash}/bin/bash -c '${pkgs.procps}/bin/pkill -U $(id -u) -x mpv; ${pkgs.coreutils}/bin/rm -f /tmp/black_screen.pid'";
resumeCommand = "${pkgs.bash}/bin/bash -c 'pid=$(${pkgs.coreutils}/bin/cat /home/alex/black_screen.pid); ${pkgs.coreutils}/bin/kill $pid && ${pkgs.coreutils}/bin/rm /home/alex/black_screen.pid'";
}
];
# put notifications to bottom right
services.mako = {
settings = {
anchor = "bottom-righ";
};
};
};
}
+10
View File
@@ -0,0 +1,10 @@
local function quit()
mp.command("quit")
end
-- Bind to every sane input type
mp.add_forced_key_binding(nil, "any_key", quit)
mp.add_forced_key_binding("MBTN_LEFT", "left_click", quit)
mp.add_forced_key_binding("MBTN_RIGHT", "right_click", quit)
mp.add_forced_key_binding("WHEEL_UP", "scroll_up", quit)
mp.add_forced_key_binding("WHEEL_DOWN", "scroll_down", quit)
Binary file not shown.
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

+1 -1
View File
@@ -1,4 +1,4 @@
{ config, pkgs, ... }: { config, pkgs, system, nix-alien, ... }:
{ {
system.stateVersion = "25.05"; system.stateVersion = "25.05";
+5
View File
@@ -0,0 +1,5 @@
{ config, lib, ... }:
{
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+10
View File
@@ -0,0 +1,10 @@
{ lib, config, ... }:
let
nvidiaPackage = config.hardware.nvidia.package;
in
{
imports = [ ../. ];
# enable the open source drivers if the package supports it
hardware.nvidia.open = lib.mkOverride 990 (nvidiaPackage ? open && nvidiaPackage ? firmware);
}
+19 -1
View File
@@ -8,8 +8,26 @@
brave brave
firefox firefox
chromium chromium
thunderbird
# misc # misc
zotero
evince
pcmanfm
krusader
# graphic and image stuff
gimp
nomacs
# video playing
vlc
mpv
qbittorrent
nextcloud-client
]; ];
Executable → Regular
+12 -1
View File
@@ -1,11 +1,22 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
jdk jdk
jetbrains.pycharm-professional jetbrains.pycharm-professional
#(jetbrains.plugins.addPlugins jetbrains.pycharm-professional ["github-copilot"])
R
mongodb-compass mongodb-compass
]; ];
virtualisation.virtualbox.host.enable = true;
virtualisation.virtualbox.host.enableExtensionPack = true;
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
zlib # numpy
libgcc # sqlalchemy
# that's where the shared libs go, you can find which one you need using
# nix-locate --top-level libstdc++.so.6 (replace this with your lib)
# ^ this requires `nix-index` pkg
];
} }
+4 -4
View File
@@ -1,8 +1,8 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
virtualisation.docker.enable = true; virtualisation.docker.enable = true;
virtualisation.docker.rootless = { #virtualisation.docker.rootless = {
enable = true; # enable = true;
setSocketVariable = true; # setSocketVariable = true;
}; #};
} }
+7
View File
@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
spotify
ffmpeg
];
}
+19
View File
@@ -0,0 +1,19 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
(lutris.override {
extraLibraries = pkgs: [
# List library dependencies here
];
})
wineWowPackages.stable # 32/64-bit Wine
winetricks
lutris
vulkan-tools # for testing Vulkan
libpulseaudio # often needed for audio in Wine games
protonup-qt
];
programs.steam.enable = true;
}
+7 -6
View File
@@ -10,6 +10,7 @@
main = { main = {
capslock = "layer(capslayer)"; capslock = "layer(capslayer)";
"'" = "G-'"; "'" = "G-'";
rightcontrol = "rightcontrol";
}; };
otherlayer = {}; otherlayer = {};
capslayer = { capslayer = {
@@ -35,10 +36,10 @@
# Optional, but makes sure that when you type the make palm rejection work with keyd # Optional, but makes sure that when you type the make palm rejection work with keyd
# https://github.com/rvaiya/keyd/issues/723 # https://github.com/rvaiya/keyd/issues/723
environment.etc."libinput/local-overrides.quirks".text = '' #environment.etc."libinput/local-overrides.quirks".text = ''
[Serial Keyboards] # [Serial Keyboards]
MatchUdevType=keyboard # MatchUdevType=keyboard
MatchName=keyd virtual keyboard # MatchName=keyd virtual keyboard
AttrKeyboardIntegration=internal # AttrKeyboardIntegration=internal
''; #'';
} }
+7
View File
@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
texlive.combined.scheme-full
biber
];
}
+23
View File
@@ -0,0 +1,23 @@
{ config, pkgs, ... }:
{
nix.settings = {
substituters = [
"https://nix-community.cachix.org"
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
};
environment.systemPackages = with pkgs; [
cudaPackages.cudatoolkit
cudaPackages.cudnn
];
hardware.nvidia-container-toolkit.enable = true;
environment.variables = {
CUDA_HOME = "${pkgs.cudaPackages.cudatoolkit}";
CUDNN_PATH = "${pkgs.cudaPackages.cudnn}";
};
systemd.services.docker.serviceConfig = {
Environment = "DOCKER_CLI_EXPERIMENTAL=enabled";
};
}
+12
View File
@@ -0,0 +1,12 @@
{ pkgs, ... }:
let
mullvad-autostart = pkgs.makeAutostartItem {
name = "mullvad-vpn";
package = pkgs.mullvad-vpn;
};
in
{
services.mullvad-vpn.enable = true;
services.mullvad-vpn.package = pkgs.mullvad-vpn;
environment.systemPackages = [ mullvad-autostart ];
}
+3 -1
View File
@@ -14,14 +14,16 @@
wl-clipboard wl-clipboard
mako mako
libnotify
]; ];
programs.dconf.enable = true; programs.dconf.enable = true;
services.greetd = { services.greetd = {
enable = true; enable = true;
vt = 2; # clean login screen, no startup logs
settings = { settings = {
default_session = { default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd sway"; command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd 'sway --unsupported-gpu'";
user = "greeter"; user = "greeter";
}; };
}; };
+1
View File
@@ -4,6 +4,7 @@
# Install tools # Install tools
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
pavucontrol pavucontrol
playerctl
]; ];
# Enable PipeWire and its PulseAudio compatibility layer # Enable PipeWire and its PulseAudio compatibility layer
+9
View File
@@ -0,0 +1,9 @@
{ config, pkgs, system, ... }:
{
home.packages = with pkgs; [
];
home.stateVersion = "25.05";
}
+11 -11
View File
@@ -4,17 +4,17 @@
enable = true; enable = true;
settings = { settings = {
terminal.shell = { terminal.shell = {
program = "/bin/sh"; program = "${pkgs.fish}/bin/fish";
args = [ # args = [
"-c" # "-c"
'' # ''
if command -v zellij >/dev/null 2>&1; then # if command -v zellij >/dev/null 2>&1; then
exec zellij # exec zellij
else # else
exec "${SHELL:-/bin/bash}" # exec "${SHELL:-/bin/bash}"
fi # fi
'' # ''
]; # ];
}; };
}; };
}; };
-8
View File
@@ -1,8 +0,0 @@
{ config, pkgs, ... }:
{
home.packages = with pkgs; [
];
home.stateVersion = "24.05";
}
+8
View File
@@ -0,0 +1,8 @@
{ pkgs, ... }:
{
# pyenv setup
programs.pyenv = {
enable = true;
enableFishIntegration = true;
};
}
+17
View File
@@ -0,0 +1,17 @@
{ config, pkgs, ... }:
let
devScript = pkgs.writeShellScriptBin "dev" ''
if [ -z "$1" ]; then
echo "Usage: dev <shell-name>"
exit 1
fi
nix develop ~/nixos/devshells/$1
'';
in
{
home.packages = [
devScript
];
}
+1 -1
View File
@@ -6,7 +6,7 @@
provider = "geoclue2"; provider = "geoclue2";
tray = true; tray = true;
temperature = { temperature = {
night = 1700; night = 2500;
}; };
}; };
} }
+29
View File
@@ -0,0 +1,29 @@
{ pkgs, lib, ... }:
{
services.mako = {
enable = true;
settings = {
actions = true;
sort = "-time";
anchor = lib.mkDefault "top-right";
background-color = "#000000";
border-color = "#88c0d0";
border-radius = 0;
default-timeout = 10000;
font = "monospace 20";
height = 150;
width = 400;
icons = true;
ignore-timeout = false;
layer = "overlay";
markup = true;
# Section example
"urgency=high" = {
border-color = "fc0f0f";
default-timeout = 0;
};
};
};
}
+22 -8
View File
@@ -35,8 +35,16 @@ in
terminal = "alacritty"; terminal = "alacritty";
startup = [ startup = [
{ command = "blueman-applet";} { command = "blueman-applet";}
{ command = "mullvad-vpn";}
{ command = "swaymsg workspace 1";}
{ command = "thunderbird";}
{ command = "nextcloud";}
{ command = "spotify";}
{ command = "brave";}
{ command = "alacritty";}
]; ];
defaultWorkspace = "1"; defaultWorkspace = "1";
workspaceAutoBackAndForth = true;
bars = []; bars = [];
fonts = { fonts = {
names = [ "MesloLGS NF" ]; names = [ "MesloLGS NF" ];
@@ -144,18 +152,17 @@ in
value = "workspace ${key}"; value = "workspace ${key}";
} }
{ {
name = "${mod}+Ctrl+${key}"; name = "${mod}+Shift+${key}";
value = "move container to workspace ${key}"; value = "move container to workspace ${key}";
} }
{ {
name = "${mod}+Shift+${key}"; name = "${mod}+Ctrl+${key}";
value = "move container to workspace ${key}; workspace ${key}"; value = "move container to workspace ${key}; workspace ${key}";
} }
]) (lib.range 0 8)); ]) (lib.range 1 9));
assigns = { assigns = {
"2: web" = [{ class = "^Brave$"; }]; "9: mail" = [{ app_id = "thunderbird"; }];
"9: mail" = [{ class = "Thunderbird"; }];
}; };
modes = { modes = {
@@ -213,7 +220,7 @@ in
}; };
}; };
extraConfig = '' extraConfig = ''
default_border pixel 1 default_border pixel 2
floating_modifier ${mod} floating_modifier ${mod}
# === Floating Windows === # === Floating Windows ===
@@ -224,8 +231,15 @@ in
for_window [class="Blueman-manager"] floating enable border normal for_window [class="Blueman-manager"] floating enable border normal
for_window [class="GParted"] floating enable border normal for_window [class="GParted"] floating enable border normal
for_window [class="pavucontrol"] floating enable for_window [class="pavucontrol"] floating enable
for_window [class="Volume Control"] floating enable for_window [title="Volume Control"] floating enable
for_window [class="(?i)VirtualBox"] floating enable border normal for_window [class="Spotify"] move scratchpad
# Float all windows with "VirtualBox" in the title
for_window [class=".*VirtualBox.*"] floating enable
# EXCEPT: unfloat those that also contain "Manager" or "Machine"
for_window [class=".*VirtualBox Manager.*"] floating disable
for_window [class=".*VirtualBox Machine"] floating disable
''; '';
}; };
} }
+7 -7
View File
@@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let let
scriptDir = ./../../scripts/waybar; scriptDir = ./../../resources/scripts/waybar;
# Get all files in the scriptDir # Get all files in the scriptDir
scriptFiles = builtins.filter (name: scriptFiles = builtins.filter (name:
@@ -28,11 +28,11 @@ in {
programs.waybar = { programs.waybar = {
enable = true; enable = true;
systemd.enable = true; systemd.enable = true;
settings = [{ settings.main = lib.mkMerge [{
command = "waybar"; command = "waybar";
layer = "top"; layer = "top";
position = "top"; position = lib.mkDefault "top";
"modules-left" = [ "modules-left" = lib.mkDefault [
"tray" "tray"
#"custom/cpu_linux" #"custom/cpu_linux"
"cpu" "cpu"
@@ -41,8 +41,8 @@ in {
"disk" "disk"
"custom/nvidia" "custom/nvidia"
]; ];
"modules-center" = [ "sway/window" ]; "modules-center" = lib.mkDefault [ "sway/window" ];
"modules-right" = [ "modules-right" = lib.mkDefault [
"group/blight" "group/blight"
"custom/colorpicker" "custom/colorpicker"
"idle_inhibitor" "idle_inhibitor"
@@ -219,7 +219,7 @@ in {
} }
window#waybar { window#waybar {
background: transparent; background: black;
} }
.modules-right { .modules-right {
+1 -1
View File
@@ -2,7 +2,7 @@
{ {
programs.zellij = { programs.zellij = {
enable = true; enable = true;
enableFishIntegration = true; #enableFishIntegration = true;
settings = { settings = {
theme = "dracula"; theme = "dracula";
copy_on_select = true; copy_on_select = true;
+47
View File
@@ -0,0 +1,47 @@
{
description = "NixOS config with modules, host overrides, and Home Manager";
inputs = {
nixpkgs.url = "nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager/release-25.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nix-alien.url = "github:thiagokokada/nix-alien";
};
outputs = { self, nixpkgs, home-manager, nix-alien, ... }: {
nixosConfigurations = {
dev-vm = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit home-manager;
};
modules = [
./common.nix
./hosts/dev-vm/default.nix
];
};
alex-laptop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit home-manager;
};
modules = [
./system/common.nix
./hosts/alex-laptop/default.nix
];
};
alex-desktop= nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit home-manager;
inherit (self.inputs) nix-alien;
};
modules = [
./system/common.nix
./hosts/alex-desktop/default.nix
];
};
};
};
}