diff --git a/assets/dark_abstract.png b/assets/dark_abstract.png
new file mode 100644
index 0000000..006f9d0
Binary files /dev/null and b/assets/dark_abstract.png differ
diff --git a/assets/gruvbox_wallpaper.png b/assets/gruvbox_wallpaper.png
deleted file mode 100644
index 5239806..0000000
Binary files a/assets/gruvbox_wallpaper.png and /dev/null differ
diff --git a/assets/shadow-cli.txt b/assets/shadow-cli.txt
new file mode 100644
index 0000000..1e796ef
--- /dev/null
+++ b/assets/shadow-cli.txt
@@ -0,0 +1,14 @@
+[0m [0m [0m [0m [0m [0m [0m[38;2;0;0;0m▄[38;2;0;0;0m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[0m[38;2;0;0;0m▄[0m[38;2;0;0;0m▄[0m [0m [0m [0m [0m [0m [0m
+[0m [0m [0m [0m [0m[38;2;0;0;0m▄[38;2;0;0;0m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;58;63;117m▀[38;2;105;106;106m[48;2;58;63;117m▀[38;2;105;106;106m[48;2;58;63;117m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;145;145;145m[48;2;105;106;106m▀[38;2;145;145;145m[48;2;145;145;145m▀[38;2;105;106;106m[48;2;145;145;145m▀[38;2;105;106;106m[48;2;145;145;145m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[0m[38;2;0;0;0m▄[0m [0m [0m [0m [0m
+[0m [0m [0m [38;2;0;0;0m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;58;63;117m▀[38;2;58;63;117m[48;2;0;0;0m▀[38;2;58;63;117m[48;2;0;0;0m▀[38;2;58;63;117m[48;2;0;0;0m▀[38;2;58;63;117m[48;2;0;0;0m▀[38;2;58;63;117m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;58;63;117m▀[38;2;105;106;106m[48;2;58;63;117m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;145;145;145m[48;2;105;106;106m▀[38;2;145;145;145m[48;2;145;145;145m▀[38;2;105;106;106m[48;2;145;145;145m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;0;0;0m▀[0m [0m [0m [0m
+[0m [0m [38;2;0;0;0m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;58;63;117m[48;2;58;63;117m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;58;63;117m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;58;63;117m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;0;0;0m▀[0m[38;2;0;0;0m▄[0m [0m
+[0m [38;2;0;0;0m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;58;63;117m[48;2;58;63;117m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;255;255;255m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;255;255;255m[48;2;255;255;255m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;58;63;117m[48;2;0;0;0m▀[38;2;58;63;117m[48;2;58;63;117m▀[38;2;105;106;106m[48;2;58;63;117m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[0m [0m
+[0m [38;2;0;0;0m[48;2;0;0;0m▀[38;2;58;63;117m[48;2;58;63;117m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;255;255;255m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;255;255;255m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;255;255;255m[48;2;255;255;255m▀[38;2;255;255;255m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;255;255;255m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;58;63;117m[48;2;58;63;117m▀[38;2;58;63;117m[48;2;58;63;117m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[0m[38;2;0;0;0m▀[0m [0m
+[0m [0m[38;2;0;0;0m▀[38;2;58;63;117m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;58;63;117m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;203;219;252m[48;2;203;219;252m▀[38;2;155;173;183m[48;2;155;173;183m▀[38;2;255;255;255m[48;2;255;255;255m▀[38;2;255;255;255m[48;2;255;255;255m▀[38;2;0;0;0m[48;2;255;255;255m▀[38;2;0;0;0m[48;2;255;255;255m▀[38;2;255;255;255m[48;2;255;255;255m▀[38;2;203;219;252m[48;2;203;219;252m▀[38;2;155;173;183m[48;2;155;173;183m▀[38;2;255;255;255m[48;2;255;255;255m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;58;63;117m[48;2;58;63;117m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;82;34;148m▀[0m[38;2;0;0;0m▄[0m [0m [0m
+[0m[38;2;0;0;0m▄[38;2;0;0;0m[48;2;0;0;0m▀[38;2;82;34;148m[48;2;0;0;0m▀[38;2;43;18;78m[48;2;0;0;0m▀[38;2;58;63;117m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;58;63;117m▀[38;2;255;255;255m[48;2;0;0;0m▀[38;2;255;255;255m[48;2;255;255;255m▀[38;2;255;255;255m[48;2;226;226;226m▀[38;2;255;255;255m[48;2;226;226;226m▀[38;2;255;255;255m[48;2;226;226;226m▀[38;2;255;255;255m[48;2;255;255;255m▀[38;2;255;255;255m[48;2;255;255;255m▀[38;2;255;255;255m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;58;63;117m▀[38;2;58;63;117m[48;2;0;0;0m▀[38;2;58;63;117m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;43;18;78m[48;2;0;0;0m▀[38;2;82;34;148m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[0m[38;2;0;0;0m▄[0m
+[0m [0m [0m [0m [0m[38;2;0;0;0m▄[38;2;0;0;0m[48;2;82;34;148m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;145;145;145m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;93;68;128m▀[38;2;0;0;0m[48;2;82;34;148m▀[0m[38;2;0;0;0m▄[0m [0m [0m [0m [0m [0m
+[0m [0m [0m[38;2;0;0;0m▄[38;2;0;0;0m[48;2;105;106;106m▀[38;2;58;63;117m[48;2;105;106;106m▀[38;2;58;63;117m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;82;34;148m[48;2;43;18;78m▀[38;2;43;18;78m[48;2;82;34;148m▀[38;2;82;34;148m[48;2;43;18;78m▀[38;2;105;106;106m[48;2;145;145;145m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[38;2;82;34;148m[48;2;0;0;0m▀[38;2;58;63;117m[48;2;58;63;117m▀[38;2;58;63;117m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[0m[38;2;0;0;0m▄[0m [0m [0m [0m
+[0m [0m [0m [38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;145;145;145m▀[38;2;145;145;145m[48;2;105;106;106m▀[38;2;145;145;145m[48;2;105;106;106m▀[38;2;82;34;148m[48;2;0;0;0m▀[38;2;43;18;78m[48;2;0;0;0m▀[38;2;82;34;148m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;145;145;145m[48;2;105;106;106m▀[38;2;145;145;145m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;145;145;145m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;105;106;106m▀[0m[38;2;0;0;0m▄[0m [0m [0m
+[0m [0m[38;2;0;0;0m▄[38;2;0;0;0m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;82;34;148m▀[38;2;0;0;0m[48;2;58;63;117m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;105;106;106m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;145;145;145m[48;2;0;0;0m▀[38;2;105;106;106m[48;2;105;106;106m▀[38;2;0;0;0m[48;2;0;0;0m▀[0m[38;2;0;0;0m▀[38;2;105;106;106m[48;2;0;0;0m▀[0m[38;2;0;0;0m▀[0m [0m
+[0m [0m [0m[38;2;0;0;0m▀[0m [0m[38;2;0;0;0m▀[0m [0m[38;2;0;0;0m▀[38;2;43;18;78m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[0m[38;2;0;0;0m▀[0m [38;2;0;0;0m[48;2;0;0;0m▀[38;2;82;34;148m[48;2;43;18;78m▀[38;2;58;63;117m[48;2;0;0;0m▀[38;2;0;0;0m[48;2;0;0;0m▀[0m[38;2;0;0;0m▀[0m [38;2;0;0;0m[48;2;0;0;0m▀[0m[38;2;0;0;0m▀[0m [0m [0m [0m [0m
+[0m [0m [0m [0m [0m [0m [0m [0m [0m [0m [0m [0m [0m[38;2;0;0;0m▀[0m[38;2;0;0;0m▀[0m [0m [0m [0m [0m [0m [0m [0m [0m
\ No newline at end of file
diff --git a/assets/shadow_dark.png b/assets/shadow_dark.png
new file mode 100644
index 0000000..eff998e
Binary files /dev/null and b/assets/shadow_dark.png differ
diff --git a/configuration/laptop/configuration.nix b/configuration/laptop/configuration.nix
index 4bcbb39..0fe82a0 100644
--- a/configuration/laptop/configuration.nix
+++ b/configuration/laptop/configuration.nix
@@ -1,13 +1,21 @@
{
imports = [
+ ../modules/locale.nix
../modules/main-user.nix
../modules/system.nix
+ ../modules/boot.nix
../modules/desktop.nix
- ../modules/ld.nix
+ ../modules/audio.nix
+ ../modules/printing.nix
+ ../modules/programs.nix
../modules/sddm.nix
];
+ nix.settings.experimental-features = ["nix-command" "flakes"];
+ nixpkgs.config.allowUnfree = true;
+
services = {
+ avahi.enable = true;
upower.enable = true;
power-profiles-daemon.enable = true;
};
@@ -20,4 +28,13 @@
Policy.AutoEnable = true;
};
};
+
+ networking = {
+ proxy.noProxy = "127.0.0.1,localhost,internal.domain";
+ networkmanager = {
+ enable = true;
+ };
+
+ firewall.enable = true;
+ };
}
diff --git a/configuration/main/configuration.nix b/configuration/main/configuration.nix
index b373cb3..8440381 100644
--- a/configuration/main/configuration.nix
+++ b/configuration/main/configuration.nix
@@ -3,12 +3,29 @@
./verbatim.nix
../modules/steam.nix
- ../modules/desktop.nix
+ ../modules/locale.nix
../modules/main-user.nix
../modules/system.nix
- ../modules/ld.nix
+ ../modules/boot.nix
+ ../modules/desktop.nix
+ ../modules/audio.nix
+ ../modules/printing.nix
+ ../modules/programs.nix
../modules/sddm.nix
];
- networking.firewall.allowedTCPPorts = [9123];
+ nix.settings.experimental-features = ["nix-command" "flakes"];
+ nixpkgs.config.allowUnfree = true;
+
+ services.avahi.enable = true;
+
+ networking = {
+ hostName = "max-main";
+ proxy.noProxy = "127.0.0.1,localhost,internal.domain";
+ networkmanager.enable = true;
+ firewall = {
+ enable = true;
+ allowedTCPPorts = [9123];
+ };
+ };
}
diff --git a/configuration/modules/audio.nix b/configuration/modules/audio.nix
new file mode 100644
index 0000000..5cdfcc3
--- /dev/null
+++ b/configuration/modules/audio.nix
@@ -0,0 +1,14 @@
+{
+ services.pipewire = {
+ enable = true;
+ alsa = {
+ enable = true;
+ support32Bit = true;
+ };
+ pulse.enable = true;
+ jack.enable = true;
+ };
+
+ security.rtkit.enable = true;
+ programs.noisetorch.enable = true;
+}
diff --git a/configuration/modules/boot.nix b/configuration/modules/boot.nix
new file mode 100644
index 0000000..98d367b
--- /dev/null
+++ b/configuration/modules/boot.nix
@@ -0,0 +1,11 @@
+{pkgs, ...}: {
+ boot = {
+ loader = {
+ systemd-boot.enable = true;
+ efi.canTouchEfiVariables = true;
+ };
+
+ kernelPackages = pkgs.linuxPackages_latest;
+ #kernelPackages = pkgs.linuxPackages_zen;
+ };
+}
diff --git a/configuration/modules/desktop.nix b/configuration/modules/desktop.nix
index d6cb494..9083c21 100644
--- a/configuration/modules/desktop.nix
+++ b/configuration/modules/desktop.nix
@@ -1,9 +1,10 @@
-{
- pkgs,
- inputs,
- system,
- ...
-}: {
+{pkgs, ...}: {
+ environment.systemPackages = with pkgs; [
+ wl-clipboard
+ libsForQt5.qt5.qtquickcontrols2
+ libsForQt5.qt5.qtgraphicaleffects
+ ];
+
hardware.graphics = {
enable = true;
enable32Bit = true;
@@ -12,20 +13,35 @@
xdg = {
mime.enable = true;
menus.enable = true;
- portal = {
+ portal.enable = true;
+ };
+
+ programs = {
+ hyprland = {
enable = true;
- extraPortals = [pkgs.xdg-desktop-portal-cosmic];
- config.common.default = "cosmic";
+ withUWSM = true;
+ package = pkgs.hyprland;
+ portalPackage = pkgs.xdg-desktop-portal-hyprland;
};
};
- programs.niri = {
- enable = true;
- package = pkgs.niri;
+ security.pam.services.hyprlock = {};
+
+ services = {
+ xserver = {
+ enable = true;
+ videoDrivers = ["amdgpu"];
+ xkb = {
+ layout = "cz";
+ variant = "";
+ options = "caps:escape";
+ };
+ };
};
- services.xserver = {
- enable = true;
- videoDrivers = ["amdgpu"];
+ environment.sessionVariables = {
+ TERMINAL = "foot";
+ EDITOR = "nvim";
+ NIXOS_OZONE_WL = "1";
};
}
diff --git a/configuration/modules/ld.nix b/configuration/modules/ld.nix
deleted file mode 100644
index 51a20c5..0000000
--- a/configuration/modules/ld.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{pkgs, ...}: {
- programs.nix-ld = {
- enable = true;
- libraries = with pkgs; [
- # Graphics
- libGL
- vulkan-loader
- libdrm
- libgbm
-
- # Audio
- alsa-lib
- pulseaudio
- pipewire
-
- # Display / input
- libX11
- libXcursor
- libXrandr
- libXi
- libXext
- libXfixes
- wayland
-
- # Common runtime deps most Unity/Godot/etc games need
- libxcrypt
- glibc
- stdenv.cc.cc.lib # libstdc++
- zlib
- openssl
- curl
-
- # Controllers
- udev
- libevdev
- ];
- };
-}
diff --git a/configuration/modules/locale.nix b/configuration/modules/locale.nix
new file mode 100644
index 0000000..c1e9d41
--- /dev/null
+++ b/configuration/modules/locale.nix
@@ -0,0 +1,19 @@
+{
+ console.keyMap = "cz-lat2";
+ time.timeZone = "Europe/Prague";
+
+ i18n = {
+ defaultLocale = "en_US.UTF-8";
+ extraLocaleSettings = {
+ LC_ADDRESS = "cs_CZ.UTF-8";
+ LC_IDENTIFICATION = "cs_CZ.UTF-8";
+ LC_MEASUREMENT = "cs_CZ.UTF-8";
+ LC_MONETARY = "cs_CZ.UTF-8";
+ LC_NAME = "cs_CZ.UTF-8";
+ LC_NUMERIC = "cs_CZ.UTF-8";
+ LC_PAPER = "cs_CZ.UTF-8";
+ LC_TELEPHONE = "cs_CZ.UTF-8";
+ LC_TIME = "cs_CZ.UTF-8";
+ };
+ };
+}
diff --git a/configuration/modules/printing.nix b/configuration/modules/printing.nix
new file mode 100644
index 0000000..dc591ea
--- /dev/null
+++ b/configuration/modules/printing.nix
@@ -0,0 +1,3 @@
+{
+ services.printing.enable = true;
+}
diff --git a/configuration/modules/programs.nix b/configuration/modules/programs.nix
new file mode 100644
index 0000000..d295907
--- /dev/null
+++ b/configuration/modules/programs.nix
@@ -0,0 +1,12 @@
+{
+ programs = {
+ firefox.enable = true;
+ bash.blesh.enable = true; # Enhanced bash
+ nix-ld = {
+ enable = true;
+ #libraries = with pkgs; [
+ # Add libraries here
+ #];
+ };
+ };
+}
diff --git a/configuration/modules/sddm.nix b/configuration/modules/sddm.nix
index 5cfe298..9273ca8 100644
--- a/configuration/modules/sddm.nix
+++ b/configuration/modules/sddm.nix
@@ -14,7 +14,7 @@ in {
qtvirtualkeyboard
];
enable = true;
- wayland.enable = true;
+ wayland.enable = false;
autoNumlock = true;
enableHidpi = false;
theme = "sddm-astronaut-theme";
diff --git a/configuration/modules/system.nix b/configuration/modules/system.nix
index e722a9b..4e84295 100644
--- a/configuration/modules/system.nix
+++ b/configuration/modules/system.nix
@@ -1,83 +1,6 @@
-{
- device-name,
- pkgs,
- ...
-}: {
- system.stateVersion = "25.11";
- nix.settings.experimental-features = ["nix-command" "flakes"];
- nixpkgs.config.allowUnfree = true;
-
- networking = {
- networkmanager.enable = false;
- hostName = "max-${device-name}";
- proxy.noProxy = "127.0.0.1,localhost,internal.domain";
- firewall = {
- enable = true;
- };
+{device-name, ...}: {
+ networking.hostName = "max-${device-name}";
+ system = {
+ stateVersion = "25.11";
};
-
- boot = {
- loader = {
- systemd-boot.enable = true;
- efi.canTouchEfiVariables = true;
- };
-
- kernelPackages = pkgs.linuxPackages_latest; #pkgs.linuxPackages_zen;
- };
-
- services.pipewire = {
- enable = true;
- alsa = {
- enable = true;
- support32Bit = true;
- };
- pulse.enable = true;
- jack.enable = true;
- };
-
- services.logind = {
- settings.Login.powerKey = "ignore";
- settings.Login.powerKeyLongPress = "poweroff";
- };
-
- services.connman.enable = true;
-
- hardware.sensor.iio.enable = true;
-
- security.rtkit.enable = true;
- programs.noisetorch.enable = true;
-
- console.keyMap = "cz-lat2";
- services.xserver.xkb.layout = "cz";
-
- time.timeZone = "Europe/Prague";
-
- i18n = {
- defaultLocale = "en_US.UTF-8";
- extraLocaleSettings = {
- LC_ADDRESS = "cs_CZ.UTF-8";
- LC_IDENTIFICATION = "cs_CZ.UTF-8";
- LC_MEASUREMENT = "cs_CZ.UTF-8";
- LC_MONETARY = "cs_CZ.UTF-8";
- LC_NAME = "cs_CZ.UTF-8";
- LC_NUMERIC = "cs_CZ.UTF-8";
- LC_PAPER = "cs_CZ.UTF-8";
- LC_TELEPHONE = "cs_CZ.UTF-8";
- LC_TIME = "cs_CZ.UTF-8";
- };
- };
-
- services = {
- printing.enable = true;
- avahi = {
- enable = true;
- nssmdns4 = true;
- openFirewall = true;
- };
- };
-
- environment.systemPackages = [
- pkgs.ripgrep
- pkgs.xwayland-satellite
- ];
}
diff --git a/flake.lock b/flake.lock
index d7836f5..f4728cb 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,27 +1,5 @@
{
"nodes": {
- "awww": {
- "inputs": {
- "flake-compat": "flake-compat",
- "nixpkgs": [
- "nixpkgs"
- ],
- "rust-overlay": "rust-overlay"
- },
- "locked": {
- "lastModified": 1774191766,
- "narHash": "sha256-bvO+gfuUOVUiBEwAJ5A2RjpysPzCfyXD+DM8piOa1+4=",
- "ref": "refs/heads/main",
- "rev": "7a8fc2e646b97e5ae508a44d3449e3b41345d456",
- "revCount": 1336,
- "type": "git",
- "url": "https://codeberg.org/LGFae/awww"
- },
- "original": {
- "type": "git",
- "url": "https://codeberg.org/LGFae/awww"
- }
- },
"base16": {
"inputs": {
"fromYaml": "fromYaml"
@@ -109,20 +87,41 @@
"flake-compat": {
"flake": false,
"locked": {
- "lastModified": 1761588595,
- "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
- "owner": "edolstra",
- "repo": "flake-compat",
- "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
- "type": "github"
+ "lastModified": 1751685974,
+ "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
+ "ref": "refs/heads/main",
+ "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
+ "revCount": 92,
+ "type": "git",
+ "url": "https://git.lix.systems/lix-project/flake-compat.git"
},
"original": {
- "owner": "edolstra",
- "repo": "flake-compat",
- "type": "github"
+ "type": "git",
+ "url": "https://git.lix.systems/lix-project/flake-compat.git"
}
},
"flake-parts": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "nvf",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1769996383,
+ "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"stylix",
@@ -148,7 +147,7 @@
"nixpkgs": [
"nixpkgs"
],
- "rust-overlay": "rust-overlay_2"
+ "rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1772147792,
@@ -207,11 +206,11 @@
]
},
"locked": {
- "lastModified": 1774870460,
- "narHash": "sha256-DHeILNrZRmOQ8dj0MGHpjnGN+RfEoo5pHDwF+xekIl0=",
+ "lastModified": 1773367248,
+ "narHash": "sha256-FFMc1uAwy2GYasd0rdNDVxKyAgzuoJH2M+GglBQbqf0=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "293490e1c1bf3bc46d7a1f2763052f0230d12e0c",
+ "rev": "be0c641a6a5564caa33982faa1fe2c60d92131c7",
"type": "github"
},
"original": {
@@ -220,71 +219,50 @@
"type": "github"
}
},
- "niri-flake": {
+ "mnw": {
+ "locked": {
+ "lastModified": 1770419553,
+ "narHash": "sha256-b1XqsH7AtVf2dXmq2iyRr2NC1yG7skY7Z6N2MpWHlK4=",
+ "owner": "Gerg-L",
+ "repo": "mnw",
+ "rev": "2aaffa8030d0b262176146adbb6b0e6374ce2957",
+ "type": "github"
+ },
+ "original": {
+ "owner": "Gerg-L",
+ "repo": "mnw",
+ "type": "github"
+ }
+ },
+ "ndg": {
"inputs": {
- "niri-stable": "niri-stable",
- "niri-unstable": "niri-unstable",
"nixpkgs": [
+ "nvf",
"nixpkgs"
- ],
- "nixpkgs-stable": "nixpkgs-stable",
- "xwayland-satellite-stable": "xwayland-satellite-stable",
- "xwayland-satellite-unstable": "xwayland-satellite-unstable"
+ ]
},
"locked": {
- "lastModified": 1774840705,
- "narHash": "sha256-qHQCPuNj3Rug8NzxK3YhCx8N2RJBNr6nyAS2tqaLYNo=",
- "owner": "sodiboo",
- "repo": "niri-flake",
- "rev": "622435f64df8f7294293f2dfd59852614edacda4",
+ "lastModified": 1768214250,
+ "narHash": "sha256-hnBZDQWUxJV3KbtvyGW5BKLO/fAwydrxm5WHCWMQTbw=",
+ "owner": "feel-co",
+ "repo": "ndg",
+ "rev": "a6bd3c1ce2668d096e4fdaaa03ad7f03ba1fbca8",
"type": "github"
},
"original": {
- "owner": "sodiboo",
- "repo": "niri-flake",
- "type": "github"
- }
- },
- "niri-stable": {
- "flake": false,
- "locked": {
- "lastModified": 1756556321,
- "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=",
- "owner": "YaLTeR",
- "repo": "niri",
- "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294",
- "type": "github"
- },
- "original": {
- "owner": "YaLTeR",
- "ref": "v25.08",
- "repo": "niri",
- "type": "github"
- }
- },
- "niri-unstable": {
- "flake": false,
- "locked": {
- "lastModified": 1774616418,
- "narHash": "sha256-z+dLkAS4bqytIlOI4h2MnjBJrSP4d1Awx0n+IV5YA3Y=",
- "owner": "YaLTeR",
- "repo": "niri",
- "rev": "8f48f56fe19918b5cfa02e5d68a47ebaf7bf3dee",
- "type": "github"
- },
- "original": {
- "owner": "YaLTeR",
- "repo": "niri",
+ "owner": "feel-co",
+ "ref": "refs/tags/v2.6.0",
+ "repo": "ndg",
"type": "github"
}
},
"nixpkgs": {
"locked": {
- "lastModified": 1774709303,
- "narHash": "sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg=",
+ "lastModified": 1773282481,
+ "narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "8110df5ad7abf5d4c0f6fb0f8f978390e77f9685",
+ "rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
"type": "github"
},
"original": {
@@ -294,22 +272,6 @@
"type": "github"
}
},
- "nixpkgs-stable": {
- "locked": {
- "lastModified": 1774388614,
- "narHash": "sha256-tFwzTI0DdDzovdE9+Ras6CUss0yn8P9XV4Ja6RjA+nU=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "1073dad219cb244572b74da2b20c7fe39cb3fa9e",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-25.11",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
"nur": {
"inputs": {
"flake-parts": [
@@ -335,39 +297,42 @@
"type": "github"
}
},
+ "nvf": {
+ "inputs": {
+ "flake-compat": "flake-compat",
+ "flake-parts": "flake-parts",
+ "mnw": "mnw",
+ "ndg": "ndg",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "systems": "systems"
+ },
+ "locked": {
+ "lastModified": 1773343795,
+ "narHash": "sha256-0+HEuOytpwyPt7i1jj6v2QJ+NXXisCYnL2XNwPBltvg=",
+ "owner": "notashelf",
+ "repo": "nvf",
+ "rev": "83b44eaf50b96bd5d06b1a56a3a51f1b2362db52",
+ "type": "github"
+ },
+ "original": {
+ "owner": "notashelf",
+ "repo": "nvf",
+ "type": "github"
+ }
+ },
"root": {
"inputs": {
- "awww": "awww",
"floatc": "floatc",
"home-manager": "home-manager",
- "niri-flake": "niri-flake",
"nixpkgs": "nixpkgs",
+ "nvf": "nvf",
"stylix": "stylix",
"zen-browser": "zen-browser"
}
},
"rust-overlay": {
- "inputs": {
- "nixpkgs": [
- "awww",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1764038373,
- "narHash": "sha256-M6w2wNBRelcavoDAyFL2iO4NeWknD40ASkH1S3C0YGM=",
- "owner": "oxalica",
- "repo": "rust-overlay",
- "rev": "ab3536fe850211a96673c6ffb2cb88aab8071cc9",
- "type": "github"
- },
- "original": {
- "owner": "oxalica",
- "repo": "rust-overlay",
- "type": "github"
- }
- },
- "rust-overlay_2": {
"inputs": {
"nixpkgs": [
"floatc",
@@ -395,13 +360,13 @@
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
- "flake-parts": "flake-parts",
+ "flake-parts": "flake-parts_2",
"gnome-shell": "gnome-shell",
"nixpkgs": [
"nixpkgs"
],
"nur": "nur",
- "systems": "systems",
+ "systems": "systems_2",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
@@ -409,11 +374,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
- "lastModified": 1774124764,
- "narHash": "sha256-Poz9WTjiRlqZIf197CrMMJfTifZhrZpbHFv0eU1Nhtg=",
+ "lastModified": 1772296853,
+ "narHash": "sha256-pAtzPsgHRKw/2Kv8HgAjSJg450FDldHPWsP3AKG/Xj0=",
"owner": "danth",
"repo": "stylix",
- "rev": "e31c79f571c5595a155f84b9d77ce53a84745494",
+ "rev": "c4b8e80a1020e09a1f081ad0f98ce804a6e85acf",
"type": "github"
},
"original": {
@@ -437,6 +402,21 @@
"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"
+ }
+ },
"tinted-foot": {
"flake": false,
"locked": {
@@ -518,39 +498,6 @@
"type": "github"
}
},
- "xwayland-satellite-stable": {
- "flake": false,
- "locked": {
- "lastModified": 1755491097,
- "narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=",
- "owner": "Supreeeme",
- "repo": "xwayland-satellite",
- "rev": "388d291e82ffbc73be18169d39470f340707edaa",
- "type": "github"
- },
- "original": {
- "owner": "Supreeeme",
- "ref": "v0.7",
- "repo": "xwayland-satellite",
- "type": "github"
- }
- },
- "xwayland-satellite-unstable": {
- "flake": false,
- "locked": {
- "lastModified": 1773622265,
- "narHash": "sha256-wToKwH7IgWdGLMSIWksEDs4eumR6UbbsuPQ42r0oTXQ=",
- "owner": "Supreeeme",
- "repo": "xwayland-satellite",
- "rev": "a879e5e0896a326adc79c474bf457b8b99011027",
- "type": "github"
- },
- "original": {
- "owner": "Supreeeme",
- "repo": "xwayland-satellite",
- "type": "github"
- }
- },
"zen-browser": {
"inputs": {
"nixpkgs": [
@@ -558,11 +505,11 @@
]
},
"locked": {
- "lastModified": 1774759885,
- "narHash": "sha256-Y3D2GnZTO6BhGWeVcO6qUkiO5g0dDL2tmokLVWNC1WY=",
+ "lastModified": 1773290160,
+ "narHash": "sha256-u09eF4Oafi+OIbTtKe/EWil26q1glcTATiSA7dF1oCI=",
"owner": "youwen5",
"repo": "zen-browser-flake",
- "rev": "16e3f4cd221a030186a96015d82dcb3fb4afa4d6",
+ "rev": "c7cb51b30960757ed9fb8eb28567b32585d0a688",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 0ce5309..e2d5494 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,11 +1,11 @@
{
- description = "My personal NixOS config";
+ description = "My personal Hyprland NixOS config";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
- awww = {
- url = "git+https://codeberg.org/LGFae/awww";
+ nvf = {
+ url = "github:notashelf/nvf";
inputs.nixpkgs.follows = "nixpkgs";
};
@@ -28,22 +28,14 @@
url = "git+https://git.stribrny.org/max_ag/floating-calculator?rev=2abbacf66e99db523d624037f3e449aa40e8f366";
inputs.nixpkgs.follows = "nixpkgs";
};
-
- niri-flake = {
- url = "github:sodiboo/niri-flake";
- inputs.nixpkgs.follows = "nixpkgs";
- };
};
outputs = {nixpkgs, ...} @ inputs: let
- system = "x86_64-linux";
-
mkSystem = device-name:
nixpkgs.lib.nixosSystem {
- inherit system;
-
+ system = "x86_64-linux";
specialArgs = {
- inherit inputs device-name system;
+ inherit inputs device-name;
};
modules = [
./configuration/${device-name}/configuration.nix
@@ -54,18 +46,11 @@
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
-
extraSpecialArgs = {
- inherit inputs device-name system;
+ inherit inputs device-name;
};
-
backupFileExtension = null;
-
- users.maxag = {
- imports = [./home/${device-name}/home.nix];
- home.stateVersion = "25.11";
- };
-
+ users.maxag = ./home/${device-name}/home.nix;
sharedModules = [
inputs.stylix.homeModules.stylix
];
diff --git a/home/laptop/home.nix b/home/laptop/home.nix
index e816644..b48abdc 100644
--- a/home/laptop/home.nix
+++ b/home/laptop/home.nix
@@ -1,3 +1,26 @@
-{
- imports = [../modules/default.nix];
+{pkgs, ...}: {
+ home = {
+ username = "maxag";
+ homeDirectory = "/home/maxag";
+ stateVersion = "25.11";
+ };
+
+ programs.home-manager.enable = true;
+
+ home.packages = with pkgs; [
+ brightnessctl
+ ];
+
+ imports = [
+ ./hyprland.nix
+ ../modules/nvf.nix
+ ../modules/stylix.nix
+ ../modules/programming.nix
+ ../modules/multimedia.nix
+ ../modules/communication.nix
+ ../modules/rice.nix
+ ../modules/shells.nix
+ ../modules/passwords.nix
+ ../modules/create-project/create-project.nix
+ ];
}
diff --git a/home/laptop/hyprland.nix b/home/laptop/hyprland.nix
new file mode 100644
index 0000000..8a0e5a6
--- /dev/null
+++ b/home/laptop/hyprland.nix
@@ -0,0 +1,70 @@
+{
+ pkgs,
+ inputs,
+ ...
+}: {
+ imports = [
+ ../modules/hyprland.nix
+ ];
+
+ home.packages = with pkgs; [
+ bluez
+ ];
+
+ wayland.windowManager.hyprland = {
+ settings = {
+ bind = [
+ "SUPER ALT, left, exec, hyprctl keyword monitor eDP-1,preferred,auto,1,transform,3 && hyprctl keyword input:touchdevice:transform 3 && hyprctl keyword input:tablet:transform 3"
+ "SUPER ALT, right, exec, hyprctl keyword monitor eDP-1,preferred,auto,1,transform,1 && hyprctl keyword input:touchdevice:transform 1 && hyprctl keyword input:tablet:transform 1"
+ "SUPER ALT, up, exec, hyprctl keyword monitor eDP-1,preferred,auto,1,transform,2 && hyprctl keyword input:touchdevice:transform 2 && hyprctl keyword input:tablet:transform 2"
+ "SUPER ALT, down, exec, hyprctl keyword monitor eDP-1,preferred,auto,1,transform,0 && hyprctl keyword input:touchdevice:transform 0 && hyprctl keyword input:tablet:transform 0"
+ ];
+
+ workspace = [
+ "1, monitor:eDP-1"
+ "2, monitor:eDP-1"
+ "3, monitor:eDP-1"
+ "4, monitor:eDP-1"
+ "5, monitor:eDP-1"
+ "6, monitor:eDP-1"
+ "7, monitor:eDP-1"
+ "8, monitor:eDP-1"
+ "9, monitor:eDP-1"
+ "10, monitor:eDP-1"
+ ];
+ };
+
+ extraConfig = "
+ monitor=eDP-1,1920x1200@60,0x0,1
+
+ xwayland {
+ force_zero_scaling = true
+ }
+ ";
+ };
+
+ programs.hyprpanel = {
+ settings = {
+ bar = {
+ layouts = {
+ "*" = {
+ left = [
+ "dashboard"
+ "workspaces"
+ ];
+ middle = [];
+ right = [
+ "volume"
+ "bluetooth"
+ "clock"
+ "systray"
+ "network"
+ "battery"
+ "notifications"
+ ];
+ };
+ };
+ };
+ };
+ };
+}
diff --git a/home/main/home.nix b/home/main/home.nix
index 7ac8de9..00a00df 100644
--- a/home/main/home.nix
+++ b/home/main/home.nix
@@ -1,5 +1,23 @@
{
- imports = [../modules/default.nix];
+ home = {
+ username = "maxag";
+ homeDirectory = "/home/maxag";
+ stateVersion = "25.11";
+ };
- myModules.games.enable = true;
+ programs.home-manager.enable = true;
+
+ imports = [
+ ./hyprland.nix
+ ../modules/nvf.nix
+ ../modules/stylix.nix
+ ../modules/games.nix
+ ../modules/programming.nix
+ ../modules/multimedia.nix
+ ../modules/communication.nix
+ ../modules/rice.nix
+ ../modules/shells.nix
+ ../modules/passwords.nix
+ ../modules/create-project/create-project.nix
+ ];
}
diff --git a/home/main/hyprland.nix b/home/main/hyprland.nix
new file mode 100644
index 0000000..20cb764
--- /dev/null
+++ b/home/main/hyprland.nix
@@ -0,0 +1,64 @@
+{
+ imports = [
+ ../modules/hyprland.nix
+ ];
+
+ wayland.windowManager.hyprland = {
+ settings = {
+ workspace = [
+ "1, monitor:DP-1"
+ "2, monitor:DP-1"
+ "3, monitor:DP-1"
+ "4, monitor:DP-1"
+ "5, monitor:DP-1"
+ "6, monitor:DP-1"
+ "7, monitor:DP-1"
+ "8, monitor:DP-1"
+ "9, monitor:DP-1"
+ "10, monitor:DP-1"
+
+ "11, monitor:DP-2"
+ "12, monitor:DP-2"
+ "13, monitor:DP-2"
+ "14, monitor:DP-2"
+ "15, monitor:DP-2"
+ "16, monitor:DP-2"
+ "17, monitor:DP-2"
+ "18, monitor:DP-2"
+ "19, monitor:DP-2"
+ "20, monitor:DP-2"
+ ];
+ };
+
+ extraConfig = "
+ monitor=DP-1,2560x1440@120,0x0,1
+ monitor=DP-2,1920x1080@60,-1920x300,1
+
+ xwayland {
+ force_zero_scaling = true
+ }
+ ";
+ };
+
+ programs.hyprpanel = {
+ settings = {
+ bar = {
+ layouts = {
+ "*" = {
+ left = [
+ "dashboard"
+ "workspaces"
+ ];
+ middle = [];
+ right = [
+ "volume"
+ "clock"
+ "systray"
+ "notifications"
+ ];
+ };
+ };
+ };
+ };
+ };
+}
diff --git a/home/modules/communication.nix b/home/modules/communication.nix
new file mode 100644
index 0000000..f1c2c8c
--- /dev/null
+++ b/home/modules/communication.nix
@@ -0,0 +1,6 @@
+{pkgs, ...}: {
+ home.packages = with pkgs; [
+ discord
+ wasistlos
+ ];
+}
diff --git a/home/modules/create-project/create-project.nix b/home/modules/create-project/create-project.nix
index 8302d28..b56b715 100644
--- a/home/modules/create-project/create-project.nix
+++ b/home/modules/create-project/create-project.nix
@@ -54,9 +54,6 @@ in {
direnv allow
git init
-
- ".direnv" | save --append .gitignore
-
git add .
git commit -m "Project setup"
diff --git a/home/modules/create-project/project-blueprints/animation/flake.nix b/home/modules/create-project/project-blueprints/animation/flake.nix
new file mode 100644
index 0000000..c4f1a69
--- /dev/null
+++ b/home/modules/create-project/project-blueprints/animation/flake.nix
@@ -0,0 +1,22 @@
+{
+ description = "My motion canvas development shell";
+ inputs = {
+ nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
+ };
+ outputs = {nixpkgs, ...}: let
+ system = "x86_64-linux";
+ pkgs = import nixpkgs {
+ inherit system;
+ };
+ in {
+ devShells."${system}" = {
+ default = pkgs.mkShell {
+ buildInputs = with pkgs; [
+ nodejs_20
+ nodePackages.npm
+ ffmpeg
+ ];
+ };
+ };
+ };
+}
diff --git a/home/modules/create-project/project-blueprints/animation/init.sh b/home/modules/create-project/project-blueprints/animation/init.sh
new file mode 100644
index 0000000..4e1f0c6
--- /dev/null
+++ b/home/modules/create-project/project-blueprints/animation/init.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -e
+NAME=$1
+
+sed -i "s/project_name/$NAME/g" package.json
+nix develop . --command bash -c "npm install"
diff --git a/home/modules/create-project/project-blueprints/animation/package.json b/home/modules/create-project/project-blueprints/animation/package.json
new file mode 100644
index 0000000..9f61f93
--- /dev/null
+++ b/home/modules/create-project/project-blueprints/animation/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "project_name",
+ "private": true,
+ "version": "0.0.0",
+ "scripts": {
+ "start": "vite",
+ "serve": "vite",
+ "build": "tsc && vite build"
+ },
+ "dependencies": {
+ "@motion-canvas/core": "^3.17.2",
+ "@motion-canvas/2d": "^3.17.2",
+ "@motion-canvas/ffmpeg": "^1.1.0"
+ },
+ "devDependencies": {
+ "@motion-canvas/ui": "^3.17.2",
+ "@motion-canvas/vite-plugin": "^3.17.2",
+ "typescript": "^5.2.2",
+ "vite": "^4.0.0"
+ }
+}
\ No newline at end of file
diff --git a/home/modules/create-project/project-blueprints/animation/src/motion-canvas.d.ts b/home/modules/create-project/project-blueprints/animation/src/motion-canvas.d.ts
new file mode 100644
index 0000000..067c6a4
--- /dev/null
+++ b/home/modules/create-project/project-blueprints/animation/src/motion-canvas.d.ts
@@ -0,0 +1 @@
+///
diff --git a/home/modules/create-project/project-blueprints/animation/src/project.ts b/home/modules/create-project/project-blueprints/animation/src/project.ts
new file mode 100644
index 0000000..ecfbbeb
--- /dev/null
+++ b/home/modules/create-project/project-blueprints/animation/src/project.ts
@@ -0,0 +1,7 @@
+import {makeProject} from '@motion-canvas/core';
+
+import example from './scenes/example?scene';
+
+export default makeProject({
+ scenes: [example],
+});
diff --git a/home/modules/create-project/project-blueprints/animation/src/scenes/example.tsx b/home/modules/create-project/project-blueprints/animation/src/scenes/example.tsx
new file mode 100644
index 0000000..525cd51
--- /dev/null
+++ b/home/modules/create-project/project-blueprints/animation/src/scenes/example.tsx
@@ -0,0 +1,12 @@
+import {Circle, makeScene2D} from '@motion-canvas/2d';
+import {createRef} from '@motion-canvas/core';
+
+export default makeScene2D(function* (view) {
+ // Create your animations here
+
+ const circle = createRef();
+
+ view.add();
+
+ yield* circle().scale(2, 2).to(1, 2);
+});
diff --git a/home/modules/create-project/project-blueprints/animation/tsconfig.json b/home/modules/create-project/project-blueprints/animation/tsconfig.json
new file mode 100644
index 0000000..e7d5347
--- /dev/null
+++ b/home/modules/create-project/project-blueprints/animation/tsconfig.json
@@ -0,0 +1,4 @@
+{
+ "extends": "@motion-canvas/2d/tsconfig.project.json",
+ "include": ["src"]
+}
diff --git a/home/modules/create-project/project-blueprints/animation/vite.config.ts b/home/modules/create-project/project-blueprints/animation/vite.config.ts
new file mode 100644
index 0000000..42d9d68
--- /dev/null
+++ b/home/modules/create-project/project-blueprints/animation/vite.config.ts
@@ -0,0 +1,10 @@
+import {defineConfig} from 'vite';
+import motionCanvas from '@motion-canvas/vite-plugin';
+import ffmpeg from '@motion-canvas/ffmpeg';
+
+export default defineConfig({
+ plugins: [
+ motionCanvas(),
+ ffmpeg(),
+ ],
+});
diff --git a/home/modules/create-project/project-blueprints/c-sharp/flake.nix b/home/modules/create-project/project-blueprints/c-sharp/flake.nix
index 7cc631b..b4a2e0e 100644
--- a/home/modules/create-project/project-blueprints/c-sharp/flake.nix
+++ b/home/modules/create-project/project-blueprints/c-sharp/flake.nix
@@ -13,8 +13,6 @@
default = pkgs.mkShell {
buildInputs = with pkgs; [
dotnetCorePackages.sdk_10_0-bin
- netcoredbg
- csharp-ls
];
};
};
diff --git a/home/modules/create-project/project-blueprints/python/flake.nix b/home/modules/create-project/project-blueprints/python/flake.nix
index 5b9ac02..4da5bab 100644
--- a/home/modules/create-project/project-blueprints/python/flake.nix
+++ b/home/modules/create-project/project-blueprints/python/flake.nix
@@ -25,10 +25,7 @@
devShells."${system}" = {
default = pkgs.mkShell {
- packages = [
- pythonEnv
- pkgs.pyright
- ];
+ packages = [pythonEnv];
};
};
};
diff --git a/home/modules/create-project/project-blueprints/rust/flake.nix b/home/modules/create-project/project-blueprints/rust/flake.nix
index be18e35..f2e1153 100644
--- a/home/modules/create-project/project-blueprints/rust/flake.nix
+++ b/home/modules/create-project/project-blueprints/rust/flake.nix
@@ -13,11 +13,7 @@
pkgs = import nixpkgs {
inherit system overlays;
};
-
- rustToolchain = pkgs.rust-bin.stable.latest.default.override {
- extensions = ["rust-analyzer" "rust-src"];
- };
-
+ rustToolchain = pkgs.rust-bin.stable.latest.default;
rustPlatform = pkgs.makeRustPlatform {
cargo = rustToolchain;
rustc = rustToolchain;
diff --git a/home/modules/create-project/project-blueprints/typst/flake.nix b/home/modules/create-project/project-blueprints/typst/flake.nix
index 8ad528f..57ee7e3 100644
--- a/home/modules/create-project/project-blueprints/typst/flake.nix
+++ b/home/modules/create-project/project-blueprints/typst/flake.nix
@@ -1,5 +1,5 @@
{
- description = "My typst development shell";
+ description = "My cpp development shell";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
@@ -15,7 +15,6 @@
default = pkgs.mkShell {
buildInputs = with pkgs; [
typst
- tinymist
];
};
};
diff --git a/home/modules/daily_apps.nix b/home/modules/daily_apps.nix
deleted file mode 100644
index 2bc4f24..0000000
--- a/home/modules/daily_apps.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- pkgs,
- inputs,
- system,
- ...
-}: {
- home.packages = with pkgs; [
- # Browser
- inputs.zen-browser.packages.${system}.default
-
- # Communication
- discord
- wasistlos
- thunderbird
-
- # Programming
- godot
- arduino-ide
-
- # Office
- libreoffice
- trilium-desktop
- xournalpp
-
- # Images
- pixieditor
- qimgv
-
- # Wine
- wineWow64Packages.staging
- winetricks
-
- # Video
- obs-studio
- kdePackages.kdenlive
- ];
-}
diff --git a/home/modules/default.nix b/home/modules/default.nix
deleted file mode 100644
index 57edb74..0000000
--- a/home/modules/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{lib, ...}: {
- options.myModules = {
- games.enable = lib.mkOption {
- type = lib.types.bool;
- default = false;
- description = "Enable games module.";
- };
- };
- imports = [
- ./daily_apps.nix
- ./niri.nix
- ./helix.nix
- ./shell
- ./create-project/create-project.nix
- ./games
- ./theming.nix
- ];
-}
diff --git a/home/modules/games.nix b/home/modules/games.nix
new file mode 100644
index 0000000..0404c44
--- /dev/null
+++ b/home/modules/games.nix
@@ -0,0 +1,12 @@
+{pkgs, ...}: {
+ home.packages = with pkgs; [
+ heroic
+ (pkgs.prismlauncher.override {
+ jdks = [
+ pkgs.temurin-bin-21
+ pkgs.temurin-bin-8
+ pkgs.temurin-bin-17
+ ];
+ })
+ ];
+}
diff --git a/home/modules/games/default.nix b/home/modules/games/default.nix
deleted file mode 100644
index 6c98d49..0000000
--- a/home/modules/games/default.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- imports = [
- ./minecraft.nix
- ./heroic.nix
- ];
-}
diff --git a/home/modules/games/heroic.nix b/home/modules/games/heroic.nix
deleted file mode 100644
index 1850b17..0000000
--- a/home/modules/games/heroic.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- pkgs,
- config,
- lib,
- ...
-}: {
- config = lib.mkIf config.myModules.games.enable {
- home.packages = with pkgs; [
- heroic
- ];
- };
-}
diff --git a/home/modules/games/minecraft.nix b/home/modules/games/minecraft.nix
deleted file mode 100644
index b97f1ed..0000000
--- a/home/modules/games/minecraft.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- pkgs,
- config,
- lib,
- ...
-}: {
- config = lib.mkIf config.myModules.games.enable {
- home.packages = [
- (pkgs.prismlauncher.override {
- jdks = [
- pkgs.temurin-bin-21
- pkgs.temurin-bin-8
- pkgs.temurin-bin-17
- ];
- })
- ];
- };
-}
diff --git a/home/modules/helix.nix b/home/modules/helix.nix
deleted file mode 100644
index d266267..0000000
--- a/home/modules/helix.nix
+++ /dev/null
@@ -1,83 +0,0 @@
-{pkgs, ...}: {
- programs.helix = {
- enable = true;
- defaultEditor = true;
-
- extraPackages = [
- pkgs.nil
- pkgs.alejandra
- pkgs.bash-language-server
- pkgs.lldb
- ];
-
- settings.editor = {
- indent-guides.render = true;
- cursorline = true;
- color-modes = true;
- line-number = "relative";
-
- lsp = {
- display-inlay-hints = true;
- display-messages = true;
- };
-
- cursor-shape = {
- insert = "bar";
- normal = "block";
- select = "underline";
- };
-
- clipboard-provider = "wayland";
-
- statusline = {
- left = ["mode" "spinner" "file-name" "file-modification-indicator"];
- center = ["workspace-diagnostics"];
- right = ["diagnostics" "selections" "position" "file-encoding" "file-type"];
- };
-
- auto-pairs = true;
- file-picker.hidden = false;
- mouse = false;
- };
-
- languages = {
- language = [
- {
- name = "nix";
- auto-format = true;
- language-servers = ["nil"];
- formatter.command = "alejandra";
- }
- {
- name = "python";
- auto-format = true;
- language-servers = ["pyright"];
- }
- {
- name = "rust";
- auto-format = true;
- language-servers = ["rust-analyzer"];
- }
- {
- name = "c-sharp";
- auto-format = true;
- language-servers = ["omnisharp"];
- }
- {
- name = "markdown";
- auto-format = true;
- language-servers = ["marksman"];
- }
- {
- name = "typst";
- auto-format = true;
- language-servers = ["tinymist"];
- }
- {
- name = "bash";
- auto-format = true;
- }
- ];
- };
- };
-}
diff --git a/home/modules/hyprland.nix b/home/modules/hyprland.nix
new file mode 100644
index 0000000..081877a
--- /dev/null
+++ b/home/modules/hyprland.nix
@@ -0,0 +1,325 @@
+{pkgs, ...}: {
+ wayland.windowManager.hyprland = {
+ enable = true;
+ systemd.enable = true;
+ systemd.variables = ["--all"];
+
+ xwayland.enable = true;
+
+ settings = {
+ exec-once = [
+ "wl-clip-persist --clipboard both"
+ "wl-paste --watch cliphist store"
+ "hyprpanel"
+ ];
+
+ input = {
+ kb_layout = "cz";
+ kb_options = "caps:escape";
+ numlock_by_default = true;
+
+ sensitivity = 0;
+ touchpad = {
+ natural_scroll = false;
+ };
+ };
+
+ misc = {
+ disable_hyprland_logo = true;
+ layers_hog_keyboard_focus = true;
+ animate_manual_resizes = true;
+ enable_swallow = true;
+ focus_on_activate = true;
+ middle_click_paste = false;
+ };
+
+ dwindle = {
+ force_split = 0;
+ special_scale_factor = 1.0;
+ split_width_multiplier = 1.0;
+ use_active_for_splits = true;
+ pseudotile = "yes";
+ preserve_split = "yes";
+ };
+
+ general = {
+ layout = "dwindle";
+ gaps_in = 4;
+ gaps_out = 3;
+ border_size = 2;
+ };
+
+ decoration = {
+ rounding = 7;
+ active_opacity = 1.0;
+ inactive_opacity = 1.0;
+ fullscreen_opacity = 1.0;
+
+ blur.enabled = false;
+ shadow.enabled = false;
+ };
+
+ animations = {
+ enabled = true;
+
+ bezier = [
+ "myBezier, 0.05, 0.9, 0.1, 1.05"
+ ];
+
+ animation = [
+ "windows, 1, 7, myBezier"
+ "windowsOut, 1, 7, default, popin 80%"
+ "border, 1, 10, default"
+ "borderangle, 1, 8, default"
+ "fade, 1, 7, default"
+ "workspaces, 1, 6, default"
+ ];
+ };
+
+ binds = {
+ movefocus_cycles_fullscreen = true;
+ };
+
+ bind = [
+ # keybindings
+ "SUPER, Return, exec, foot"
+ "SUPER, B, exec, zen"
+ "SUPER, Q, killactive,"
+ "SUPER, F, fullscreen, 0"
+ "SUPER SHIFT, F, fullscreen, 1"
+ "SUPER, W, togglefloating"
+ "SUPER, A, exec, fuzzel"
+ "SUPER, P, pseudo,"
+ "SUPER, E, exec, foot yazi"
+ "SUPER, C, exec, floating-calculator"
+ "SUPER, code:23, swapsplit"
+ "SUPER, code:66, togglesplit"
+ "Alt, F4, exec, hyprctl kill"
+ "SUPER, S, exec, hyprlock"
+
+ # switch focus
+ "SUPER, left, movefocus, l"
+ "SUPER, right, movefocus, r"
+ "SUPER, up, movefocus, u"
+ "SUPER, down, movefocus, d"
+ "SUPER, h, movefocus, l"
+ "SUPER, j, movefocus, d"
+ "SUPER, k, movefocus, u"
+ "SUPER, l, movefocus, r"
+
+ "SUPER, left, alterzorder, top"
+ "SUPER, right, alterzorder, top"
+ "SUPER, up, alterzorder, top"
+ "SUPER, down, alterzorder, top"
+ "SUPER, h, alterzorder, top"
+ "SUPER, j, alterzorder, top"
+ "SUPER, k, alterzorder, top"
+ "SUPER, l, alterzorder, top"
+
+ # switch workspace
+ "SUPER, code:10, workspace, 1"
+ "SUPER, code:11, workspace, 2"
+ "SUPER, code:12, workspace, 3"
+ "SUPER, code:13, workspace, 4"
+ "SUPER, code:14, workspace, 5"
+ "SUPER, code:15, workspace, 6"
+ "SUPER, code:16, workspace, 7"
+ "SUPER, code:17, workspace, 8"
+ "SUPER, code:18, workspace, 9"
+ "SUPER, code:19, workspace, 10"
+
+ # same as above, but switch to the workspace
+ "SUPER SHIFT, code:10, movetoworkspace, 1"
+ "SUPER SHIFT, code:11, movetoworkspace, 2"
+ "SUPER SHIFT, code:12, movetoworkspace, 3"
+ "SUPER SHIFT, code:13, movetoworkspace, 4"
+ "SUPER SHIFT, code:14, movetoworkspace, 5"
+ "SUPER SHIFT, code:15, movetoworkspace, 6"
+ "SUPER SHIFT, code:16, movetoworkspace, 7"
+ "SUPER SHIFT, code:17, movetoworkspace, 8"
+ "SUPER SHIFT, code:18, movetoworkspace, 9"
+ "SUPER SHIFT, code:19, movetoworkspace, 10"
+
+ "SUPER ALT, code:10, movetoworkspacesilent, 1"
+ "SUPER ALT, code:11, movetoworkspacesilent, 2"
+ "SUPER ALT, code:12, movetoworkspacesilent, 3"
+ "SUPER ALT, code:13, movetoworkspacesilent, 4"
+ "SUPER ALT, code:14, movetoworkspacesilent, 5"
+ "SUPER ALT, code:15, movetoworkspacesilent, 6"
+ "SUPER ALT, code:16, movetoworkspacesilent, 7"
+ "SUPER ALT, code:17, movetoworkspacesilent, 8"
+ "SUPER ALT, code:18, movetoworkspacesilent, 9"
+ "SUPER ALT, code:19, movetoworkspacesilent, 10"
+
+ # switch worspace
+ "SUPER CTRL, code:10, workspace, 11"
+ "SUPER CTRL, code:11, workspace, 12"
+ "SUPER CTRL, code:12, workspace, 13"
+ "SUPER CTRL, code:13, workspace, 14"
+ "SUPER CTRL, code:14, workspace, 15"
+ "SUPER CTRL, code:15, workspace, 16"
+ "SUPER CTRL, code:16, workspace, 17"
+ "SUPER CTRL, code:17, workspace, 18"
+ "SUPER CTRL, code:18, workspace, 19"
+ "SUPER CTRL, code:19, workspace, 20"
+
+ # same as above, but switch to the workspace
+ "SUPER CTRL SHIFT, code:10, movetoworkspace, 11"
+ "SUPER CTRL SHIFT, code:11, movetoworkspace, 12"
+ "SUPER CTRL SHIFT, code:12, movetoworkspace, 13"
+ "SUPER CTRL SHIFT, code:13, movetoworkspace, 14"
+ "SUPER CTRL SHIFT, code:14, movetoworkspace, 15"
+ "SUPER CTRL SHIFT, code:15, movetoworkspace, 16"
+ "SUPER CTRL SHIFT, code:16, movetoworkspace, 17"
+ "SUPER CTRL SHIFT, code:17, movetoworkspace, 18"
+ "SUPER CTRL SHIFT, code:18, movetoworkspace, 19"
+ "SUPER CTRL SHIFT, code:19, movetoworkspace, 20"
+ "SUPER CTRL ALT, code:10, movetoworkspacesilent, 11"
+ "SUPER CTRL ALT, code:11, movetoworkspacesilent, 12"
+ "SUPER CTRL ALT, code:12, movetoworkspacesilent, 13"
+ "SUPER CTRL ALT, code:13, movetoworkspacesilent, 14"
+ "SUPER CTRL ALT, code:14, movetoworkspacesilent, 15"
+ "SUPER CTRL ALT, code:15, movetoworkspacesilent, 16"
+ "SUPER CTRL ALT, code:16, movetoworkspacesilent, 17"
+ "SUPER CTRL ALT, code:17, movetoworkspacesilent, 18"
+ "SUPER CTRL ALT, code:18, movetoworkspacesilent, 19"
+ "SUPER CTRL ALT, code:19, movetoworkspacesilent, 20"
+
+ # window control
+ "SUPER SHIFT, left, movewindow, l"
+ "SUPER SHIFT, right, movewindow, r"
+ "SUPER SHIFT, up, movewindow, u"
+ "SUPER SHIFT, down, movewindow, d"
+ "SUPER SHIFT, h, movewindow, l"
+ "SUPER SHIFT, j, movewindow, d"
+ "SUPER SHIFT, k, movewindow, u"
+ "SUPER SHIFT, l, movewindow, r"
+
+ "SUPER CTRL, left, resizeactive, -80 0"
+ "SUPER CTRL, right, resizeactive, 80 0"
+ "SUPER CTRL, up, resizeactive, 0 -80"
+ "SUPER CTRL, down, resizeactive, 0 80"
+ "SUPER CTRL, h, resizeactive, -80 0"
+ "SUPER CTRL, j, resizeactive, 0 80"
+ "SUPER CTRL, k, resizeactive, 0 -80"
+ "SUPER CTRL, l, resizeactive, 80 0"
+
+ # media and volume controls
+ # ",XF86AudioMute,exec, pamixer -t"
+ ",XF86AudioPlay,exec, playerctl play-pause"
+ ",XF86AudioNext,exec, playerctl next"
+ ",XF86AudioPrev,exec, playerctl previous"
+ ",XF86AudioStop,exec, playerctl stop"
+ ];
+
+ # mouse binding
+ bindm = [
+ "SUPER, mouse:272, movewindow"
+ "SUPER, mouse:273, resizewindow"
+ ];
+
+ windowrule = [
+ # "float,class:^(mpv)$"
+ ];
+ };
+ };
+
+ programs.hyprlock = {
+ enable = true;
+
+ settings = {
+ general.hide_cursor = true;
+
+ background = {
+ blur_size = 3;
+ blur_passes = 2;
+ };
+ };
+ };
+
+ programs.hyprpanel = {
+ enable = true;
+ systemd.enable = true;
+ settings = {
+ bar = {
+ launcher.autoDetectIcon = true;
+
+ clock.format = "%d %b %H:%M";
+
+ workspaces.show_icons = true;
+ workspaces.workspaces = 20;
+ };
+
+ menus.clock = {
+ time = {
+ military = true;
+ hideSeconds = false;
+ };
+ weather.enabled = false;
+ };
+
+ menus.dashboard.directories.enabled = false;
+ menus.dashboard.shortcuts.enabled = true;
+ menus.dashboard.stats.enabled = false;
+ menus.dashboard.controls.enabled = false;
+
+ menus.workspaces.show_icons = true;
+
+ theme.bar.transparent = true;
+ theme.bar.buttons.dashboard.icon = "#88B1F7";
+
+ theme.bar.buttons.workspaces = {
+ hover = "#FFFFFF";
+ active = "#FFFFFF";
+ occupied = "#88B1F7";
+ available = "#88B1F7";
+ numbered_active_underline_color = "#FFFFFF";
+ };
+
+ theme.bar.buttons.clock.text = "#88B1F7";
+ theme.bar.buttons.clock.icon = "#88B1F7";
+ theme.bar.menus.menu.clock.time.time = "#88B1F7";
+ theme.bar.menus.menu.clock.calendar.weekdays = "#88B1F7";
+ theme.bar.menus.menu.clock.calendar.paginator = "#88B1F7";
+ theme.bar.menus.menu.clock.calendar.currentday = "#88B1F7";
+ theme.bar.buttons.notifications.icon = "#88B1F7";
+ theme.bar.battery.icon = "#88B1F7";
+
+ theme.bar.buttons.battery.text = "#88B1F7";
+ theme.bar.buttons.battery.icon = "#88B1F7";
+ theme.bar.menus.menu.battery.label.color = "#88B1F7";
+ theme.bar.menus.menu.battery.slider.primary = "#88B1F7";
+ theme.bar.menus.menu.battery.listitems.active = "#88B1F7";
+ theme.bar.menus.menu.battery.icons.active = "#88B1F7";
+
+ theme.bar.menus.menu.volume = {
+ label.color = "#88B1F7";
+ listitems.active = "#88B1F7";
+ iconbutton.active = "#88B1F7";
+ audio_slider.primary = "#88B1F7";
+ input_slider.primary = "#88B1F7";
+ };
+
+ theme.bar.buttons.volume = {
+ text = "#88b1f7";
+ icon = "#88b1f7";
+ };
+
+ theme.font = {
+ size = "12px";
+ };
+ };
+ };
+
+ home.packages = with pkgs; [
+ hyprpanel
+ hyprpicker
+ wl-clip-persist
+ cliphist
+ wf-recorder
+ slurp
+ grim
+ wl-clipboard
+ playerctl
+ ];
+}
diff --git a/home/modules/multimedia.nix b/home/modules/multimedia.nix
new file mode 100644
index 0000000..9c72c08
--- /dev/null
+++ b/home/modules/multimedia.nix
@@ -0,0 +1,42 @@
+{
+ pkgs,
+ inputs,
+ ...
+}: {
+ home = {
+ packages = with pkgs; [
+ libreoffice
+ xarchiver
+
+ trilium-desktop
+
+ xournalpp
+ obs-studio
+
+ pixieditor
+ qimgv
+
+ wineWow64Packages.staging
+ winetricks
+
+ thunderbird
+ obs-studio
+
+ inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default
+ yazi
+ kdePackages.kdenlive
+ ];
+
+ file = {
+ ".config/kdeglobals".text = ''
+ [General]
+ TerminalApplication=foot
+ '';
+ };
+ };
+
+ programs.yazi = {
+ enable = true;
+ enableNushellIntegration = true;
+ };
+}
diff --git a/home/modules/niri.nix b/home/modules/niri.nix
deleted file mode 100644
index 101ae34..0000000
--- a/home/modules/niri.nix
+++ /dev/null
@@ -1,214 +0,0 @@
-{
- pkgs,
- inputs,
- system,
- ...
-}: {
- imports = [inputs.niri-flake.homeModules.niri];
-
- home.packages = with pkgs; [
- inputs.awww.packages.${system}.awww
- wl-clipboard
- hyprpicker
- ];
-
- programs = {
- alacritty.enable = true;
- fuzzel.enable = true;
- swaylock.enable = true;
- waybar.enable = true;
- };
-
- services = {
- mako.enable = true;
- swayidle.enable = true;
- polkit-gnome.enable = true;
- };
-
- programs.niri = {
- enable = true;
- package = pkgs.niri;
-
- settings = {
- spawn-at-startup = [
- {command = ["waybar"];}
- {command = ["awww-daemon"];}
- {command = ["awww" "img" "${../../assets/gruvbox_wallpaper.png}"];}
- ];
-
- input = {
- keyboard.numlock = true;
- warp-mouse-to-focus.enable = true;
-
- touchpad.natural-scroll = false;
-
- focus-follows-mouse = {
- enable = true;
- max-scroll-amount = "0%";
- };
-
- keyboard = {
- xkb = {
- layout = "cz";
- options = "caps:escape";
- };
- };
-
- tablet = {
- map-to-output = "eDP-1";
- };
- };
-
- outputs = {
- "DP-1" = {
- focus-at-startup = true;
-
- mode = {
- width = 2560;
- height = 1440;
- refresh = 120.0;
- };
- };
-
- "DP-2" = {
- position.x = -2560;
- position.y = 210;
-
- mode = {
- width = 1920;
- height = 1080;
- refresh = 60.0;
- };
- };
- };
-
- environment = {
- NIXOS_OZONE_WL = "1";
- TERMINAL = "alacritty";
- SDL_VIDEODRIVER = "wayland";
- CLUTTER_BACKEND = "wayland";
- };
-
- gestures = {
- hot-corners.enable = false;
- };
-
- switch-events = {
- "tablet-mode-on".action.spawn = ["niri" "msg" "output" "eDP-1" "transform" "90"];
- "tablet-mode-off".action.spawn = ["niri" "msg" "output" "eDP-1" "transform" "normal"];
- };
-
- layout = {
- gaps = 8;
- focus-ring.enable = false;
-
- border = {
- enable = true;
- width = 2;
- active = {
- gradient = {
- from = "#fabd2f"; # gruvbox bright yellow
- to = "#fe8019"; # gruvbox bright orange
- angle = 45;
- relative-to = "workspace-view";
- };
- };
- inactive = {
- gradient = {
- from = "#504945"; # gruvbox bg2
- to = "#3c3836"; # gruvbox bg1
- angle = 45;
- relative-to = "workspace-view";
- };
- };
- };
-
- default-column-width = {proportion = 0.5;};
-
- preset-column-widths = [
- {proportion = 0.33333;}
- {proportion = 0.5;}
- {proportion = 0.66667;}
- {proportion = 1.0;}
- ];
-
- preset-window-heights = [
- {proportion = 0.33333;}
- {proportion = 0.5;}
- {proportion = 0.66667;}
- {proportion = 1.0;}
- ];
- };
-
- prefer-no-csd = true;
- cursor.size = 14;
- screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png";
- hotkey-overlay.skip-at-startup = true;
-
- window-rules = [
- {
- clip-to-geometry = true;
- }
- ];
-
- binds = {
- "Mod+Q".action.close-window = [];
- "Mod+Return".action.spawn = ["alacritty"];
- "Mod+A".action.spawn = ["fuzzel"];
- "Mod+B".action.spawn = ["zen"];
- "Mod+C".action.spawn = ["floating-calculator"];
-
- "Mod+O".action.toggle-overview = [];
-
- "Mod+P".action.spawn = ["hyprpicker"];
-
- # Change monitor focus
- "Mod+Alt+H".action.focus-monitor-left = [];
- "Mod+Alt+L".action.focus-monitor-right = [];
- "Mod+Alt+Left".action.focus-monitor-left = [];
- "Mod+Alt+Right".action.focus-monitor-right = [];
-
- # Vim motions
- "Mod+H".action.focus-column-left = [];
- "Mod+L".action.focus-column-right = [];
- "Mod+J".action.focus-window-down = [];
- "Mod+K".action.focus-window-up = [];
- "Mod+Left".action.focus-column-left = [];
- "Mod+Right".action.focus-column-right = [];
- "Mod+Down".action.focus-window-down = [];
- "Mod+Up".action.focus-window-up = [];
-
- "Mod+WheelScrollDown".action.focus-column-right = [];
- "Mod+WheelScrollUp".action.focus-column-left = [];
-
- "Mod+Y".action.consume-or-expel-window-left = [];
- "Mod+X".action.consume-or-expel-window-right = [];
-
- "Mod+R".action.switch-preset-column-width = [];
- "Mod+Shift+R".action.switch-preset-window-height = [];
- "Mod+F".action.maximize-column = [];
- "Mod+Shift+F".action.fullscreen-window = [];
- "Mod+W".action.toggle-window-floating = [];
-
- "Mod+Minus".action.set-column-width = ["-10%"];
- "Mod+Plus".action.set-column-width = ["+10%"];
-
- "Mod+Tab".action.focus-workspace-down = [];
- "Mod+Shift+Tab".action.focus-workspace-up = [];
-
- "Print".action.screenshot = [];
- "Ctrl+Print".action.screenshot-screen = [];
- "Alt+Print".action.screenshot-window = [];
-
- "XF86AudioPlay".action.spawn = ["playerctl" "play-pause"];
- "XF86AudioNext".action.spawn = ["playerctl" "next"];
- "XF86AudioPrev".action.spawn = ["playerctl" "previous"];
- "XF86AudioStop".action.spawn = ["playerctl" "stop"];
-
- "XF86AudioRaiseVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"];
- "XF86AudioLowerVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"];
- "xF86AudioMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"];
- };
- };
- };
-}
diff --git a/home/modules/nvf.nix b/home/modules/nvf.nix
new file mode 100644
index 0000000..bd96f03
--- /dev/null
+++ b/home/modules/nvf.nix
@@ -0,0 +1,191 @@
+{
+ pkgs,
+ inputs,
+ ...
+}: {
+ imports = [
+ inputs.nvf.homeManagerModules.default
+ ];
+
+ programs.nvf = {
+ enable = true;
+ enableManpages = true;
+
+ settings.vim = {
+ extraPackages = [pkgs.netcoredbg];
+
+ luaConfigRC.netcoredbg = ''
+ local dap = require("dap")
+ dap.adapters.coreclr = {
+ type = "executable",
+ command = "${pkgs.netcoredbg}/bin/netcoredbg",
+ args = {"--interpreter=vscode"}
+ }
+ dap.configurations.cs = {
+ {
+ type = "coreclr",
+ name = "Launch",
+ request = "launch",
+ program = function()
+ return vim.fn.input("Path to dll: ", vim.fn.getcwd() .. "/bin/Debug/", "file")
+ end,
+ },
+ }
+ '';
+
+ theme = {
+ enable = true;
+ transparent = true;
+
+ name = "catppuccin";
+ style = "mocha";
+ };
+
+ lsp = {
+ enable = true;
+ null-ls.enable = false;
+
+ inlayHints.enable = true;
+ formatOnSave = true;
+ lspkind.enable = true;
+ lspsaga.enable = true;
+ trouble.enable = true;
+ lightbulb.enable = false;
+ };
+
+ debugger = {
+ nvim-dap = {
+ enable = true;
+ ui.enable = true;
+ };
+ };
+
+ options = {
+ tabstop = 2;
+ expandtab = false;
+ autoindent = true;
+ shiftwidth = 2;
+ };
+
+ clipboard = {
+ enable = true;
+ registers = "unnamedplus";
+ providers = {
+ wl-copy = {
+ enable = true;
+ package = pkgs.wl-clipboard;
+ };
+ };
+ };
+
+ languages = {
+ enableFormat = true;
+ enableTreesitter = true;
+ enableExtraDiagnostics = true;
+
+ nix.enable = true;
+ markdown.enable = true;
+ toml.enable = true;
+
+ nu.enable = true;
+ bash.enable = true;
+ typst.enable = true;
+
+ css.enable = true;
+ html = {
+ enable = true;
+ format.enable = true;
+ lsp.servers = [
+ "emmet-ls"
+ "superhtml"
+ ];
+ };
+
+ python.enable = true;
+
+ sql.enable = false;
+ ts.enable = true;
+ zig.enable = true;
+
+ csharp = {
+ enable = true;
+ lsp.servers = ["omnisharp"];
+ };
+
+ clang.enable = true;
+ rust = {
+ enable = true;
+ extensions.crates-nvim.enable = true;
+ };
+ };
+
+ visuals = {
+ nvim-web-devicons.enable = true;
+ nvim-cursorline.enable = true;
+ cinnamon-nvim.enable = true;
+ fidget-nvim.enable = true;
+
+ highlight-undo.enable = true;
+ indent-blankline.enable = true;
+ };
+
+ statusline = {
+ lualine = {
+ enable = true;
+ };
+ };
+
+ autopairs.nvim-autopairs.enable = true;
+
+ autocomplete = {
+ nvim-cmp.enable = true;
+ blink-cmp.enable = false;
+ };
+
+ snippets.luasnip.enable = true;
+
+ telescope.enable = true;
+
+ git = {
+ enable = true;
+ };
+
+ dashboard.alpha.enable = true;
+
+ notify.nvim-notify.enable = true;
+
+ projects.project-nvim.enable = true;
+
+ utility = {
+ ccc.enable = true;
+ diffview-nvim.enable = true;
+ icon-picker.enable = true;
+ surround.enable = true;
+
+ motion = {
+ hop.enable = true;
+ leap.enable = true;
+ };
+ };
+
+ comments.comment-nvim.enable = true;
+
+ ui = {
+ noice.enable = true;
+ colorizer.enable = true;
+ illuminate.enable = true;
+
+ fastaction.enable = true;
+ };
+ };
+ };
+
+ xdg.desktopEntries.nvim-foot = {
+ name = "Neovim (foot)";
+ comment = "Edit text files with Neovim in foot terminal";
+ icon = "nvim";
+ exec = "foot -e nvim %F";
+ categories = ["Utility" "TextEditor" "Development"];
+ mimeType = ["text/plain" "text/x-makefile" "application/x-shellscript"];
+ };
+}
diff --git a/home/modules/passwords.nix b/home/modules/passwords.nix
new file mode 100644
index 0000000..69cc723
--- /dev/null
+++ b/home/modules/passwords.nix
@@ -0,0 +1,5 @@
+{pkgs, ...}: {
+ home.packages = with pkgs; [
+ keepassxc
+ ];
+}
diff --git a/home/modules/programming.nix b/home/modules/programming.nix
new file mode 100644
index 0000000..1e31549
--- /dev/null
+++ b/home/modules/programming.nix
@@ -0,0 +1,7 @@
+{pkgs, ...}: {
+ home.packages = with pkgs; [
+ godot
+ lazygit
+ arduino-ide
+ ];
+}
diff --git a/home/modules/rice.nix b/home/modules/rice.nix
new file mode 100644
index 0000000..cffa2d2
--- /dev/null
+++ b/home/modules/rice.nix
@@ -0,0 +1,93 @@
+{
+ pkgs,
+ inputs,
+ ...
+}: {
+ imports = [
+ ./zellij.nix
+ ];
+
+ home.packages = with pkgs; [
+ fuzzel
+ btop
+ fastfetch
+ oh-my-posh
+ man-pages
+ inputs.floatc.packages.${pkgs.stdenv.hostPlatform.system}.default
+ ];
+
+ gtk.enable = true;
+ qt.enable = true;
+
+ programs = {
+ fuzzel.enable = true;
+ btop.enable = true;
+
+ fastfetch = {
+ enable = true;
+ settings = {
+ logo = {
+ source = "~/.nix-config/assets/shadow-cli.txt";
+ type = "file-raw";
+ padding.right = 1;
+ };
+
+ modules = [
+ {
+ type = "custom";
+ key = "Favorite Anime";
+ format = "The Eminence in Shadow";
+ }
+
+ "break"
+
+ "os"
+ "kernel"
+ "cpu"
+ {
+ type = "gpu";
+ key = "GPU";
+ detectionMethod = "pci";
+ hideType = "integrated";
+ }
+ "memory"
+ "wm"
+ "terminal"
+ "shell"
+ "editor"
+ ];
+ };
+ };
+
+ foot = {
+ enable = true;
+ settings = {
+ main = {
+ term = "xterm-256color";
+ };
+ };
+ };
+
+ git = {
+ enable = true;
+ package = pkgs.gitFull;
+ settings = {
+ user.name = "maxstrb";
+ user.email = "max.stribrny@gmail.com";
+ init.defaultBranch = "main";
+ push.autoSetupRemote = true;
+ github.user = "maxstrb";
+ credential.helper = "store";
+ };
+ };
+
+ oh-my-posh = {
+ enable = true;
+
+ enableNushellIntegration = true;
+ enableBashIntegration = true;
+
+ settings = builtins.fromTOML (builtins.readFile ../../assets/oh-my-posh-shadow.toml);
+ };
+ };
+}
diff --git a/home/modules/shell/config.nu b/home/modules/shell/config.nu
deleted file mode 100644
index 52780f7..0000000
--- a/home/modules/shell/config.nu
+++ /dev/null
@@ -1,48 +0,0 @@
-$env.TRANSIENT_PROMPT_COMMAND = { || "~> " }
-
-if not ("ZELLIJ" in $env) {
- zellij
- exit
-}
-
-def rebuild [message?: string] {
- cd /home/maxag/.nix-config
- let commit_message = if $message != null {$message} else {"non important commit"}
- try {
- git pull
- git add .
- git commit -m $commit_message
- git push
- }
- sudo nixos-rebuild switch --flake .
-}
-
-def --env fzf-cd [] {
- let dir = (fd -t d -L . | fzf --reverse --height 40% --border rounded --preview=("eza --color=always --group-directories-first --icons --long {}") --preview-window=border-left)
- if $dir != null and $dir != "" {
- cd $dir
- }
-}
-
-def --env fzf-edit [] {
- let file = (fd -t f -L . | fzf --reverse --height 40% --border rounded --preview=("bat -p -P --color always {}") --preview-window=border-left)
- if $file != null and $file != "" {
- ^$env.EDITOR $file
- }
-}
-
-$env.config.keybindings = ($env.config.keybindings | append {
- name: "fzf-cd"
- modifier: "control"
- keycode: "char_f"
- mode: "emacs"
- event: [{ send: "executehostcommand" cmd: 'fzf-cd' }]
-})
-
-$env.config.keybindings = ($env.config.keybindings | append {
- name: "fzf-edit"
- modifier: "control"
- keycode: "char_e"
- mode: "emacs"
- event: [{ send: "executehostcommand" cmd: 'fzf-edit' }]
-})
diff --git a/home/modules/shell/default.nix b/home/modules/shell/default.nix
deleted file mode 100644
index 96696e7..0000000
--- a/home/modules/shell/default.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- imports = [
- ./shell.nix
- ];
-}
diff --git a/home/modules/shell/shell.nix b/home/modules/shell/shell.nix
deleted file mode 100644
index a415539..0000000
--- a/home/modules/shell/shell.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- pkgs,
- inputs,
- system,
- lib,
- ...
-}: {
- home.packages = with pkgs; [
- fzf
- fd
- eza
- btop
- man-pages
- inputs.floatc.packages.${system}.default
- ];
-
- home.sessionVariables = {
- PAGER = "${lib.getExe pkgs.bat} -l man";
- MANPAGER = "${lib.getExe pkgs.bat} -l man";
- };
-
- programs.nushell = {
- enable = true;
- extraConfig = builtins.readFile ./config.nu;
-
- settings.show_banner = false;
-
- shellAliases = {
- cat = "${lib.getExe pkgs.bat} -p -P";
- nix-shell = "nix-shell --run nu";
- garbage = " sudo nix-collect-garbage --delete-old";
- c = "clear";
- };
- };
-
- programs.zellij = {
- enable = true;
- enableBashIntegration = false;
- settings = {
- on_force_close = "quit";
- simplified_ui = true;
- pane_frames = false;
- default_layout = "compact";
- show_startup_tips = false;
- };
- };
-
- programs.starship = {
- enable = true;
- enableNushellIntegration = true;
- enableTransience = true;
- };
-
- gtk.enable = true;
- qt.enable = true;
-
- programs = {
- btop.enable = true;
- bash.enable = true;
- fzf.enable = true;
- eza.enable = true;
-
- direnv = {
- enable = true;
- silent = true;
- nix-direnv .enable = true;
- };
-
- git = {
- enable = true;
- package = pkgs.gitFull;
- settings = {
- user.name = "Jiří Maxmilián Stříbrný";
- user.email = "max.stribrny@gmail.com";
- init.defaultBranch = "main";
- push.autoSetupRemote = true;
- github.user = "maxstrb";
- credential.helper = "store";
- };
- };
- };
-}
diff --git a/home/modules/shells.nix b/home/modules/shells.nix
new file mode 100644
index 0000000..6ac2090
--- /dev/null
+++ b/home/modules/shells.nix
@@ -0,0 +1,127 @@
+{
+ pkgs,
+ device-name,
+ ...
+}: {
+ home.packages = with pkgs; [
+ bat
+ fzf
+ fd
+ eza
+ most
+ ];
+
+ home.sessionVariables = {
+ EDITOR = "nvim";
+ PAGER = "bat -l man";
+ MANPAGER = "bat -l man";
+ };
+
+ programs = {
+ bash.enable = true;
+ fzf.enable = true;
+ eza.enable = true;
+
+ direnv = {
+ enable = true;
+ silent = true;
+ nix-direnv .enable = true;
+ };
+
+ nushell = {
+ enable = true;
+
+ extraConfig =
+ /*
+ nu
+ */
+ ''
+ if "ZELLIJ" in $env == false {
+ zellij
+ exit
+ } else {
+ if "IN_NIX_SHELL" in $env == false {
+ fastfetch
+ }
+ }
+
+ def garbage [] {
+ sudo nix-collect-garbage --delete-old
+ sudo nixos-rebuild switch --flake /home/maxag/.nix-config
+ }
+
+ def c [] {
+ clear
+ fastfetch
+ }
+
+ def rebuild [message?: string] {
+ cd /home/maxag/.nix-config
+ let commit_message = if $message != null {$message} else {"non important commit"}
+
+ try {
+ git pull
+ git add .
+ git commit -m $commit_message
+ git push
+ }
+
+ sudo nixos-rebuild switch --flake .
+ }
+
+ def --env fzf-cd [] {
+ let dir = (fd -t d -L . | fzf --reverse --height 40% --border rounded --preview=("eza --color=always --group-directories-first --icons --long {}") --preview-window=border-left)
+ if $dir != null and $dir != "" {
+ cd $dir
+ }
+ }
+
+ def --env fzf-nvim [] {
+ let file = (fd -t f -L . | fzf --reverse --height 40% --border rounded --preview=("bat -p -P --color always {}") --preview-window=border-left)
+ if $file != null and $file != "" {
+ nvim $file
+ }
+ }
+
+ $env.config.keybindings = ($env.config.keybindings | append {
+ name: "fzf-cd"
+ modifier: "control"
+ keycode: "char_f"
+ mode: "emacs"
+ event: [
+ {
+ send: "executehostcommand"
+ cmd: 'fzf-cd'
+ }
+ ]
+ })
+
+ $env.config.keybindings = ($env.config.keybindings | append {
+ name: "fzf-nvim"
+ modifier: "control"
+ keycode: "char_e"
+ mode: "emacs"
+ event: [
+ {
+ send: "executehostcommand"
+ cmd: 'fzf-nvim'
+ }
+ ]
+ })
+ '';
+
+ settings = {
+ show_banner = false;
+ };
+
+ shellAliases = {
+ zel = "zellij";
+ system = "nvim /home/maxag/.nix-config/flake.nix";
+ home = "nvim /home/maxag/.nix-config/home/${device-name}/home.nix";
+ config = "nvim /home/maxag/.nix-config/configuration/${device-name}/configuration.nix";
+ cat = "bat -p -P";
+ nix-shell = "nix-shell --run nu";
+ };
+ };
+ };
+}
diff --git a/home/modules/theming.nix b/home/modules/stylix.nix
similarity index 52%
rename from home/modules/theming.nix
rename to home/modules/stylix.nix
index c83f291..8a76443 100644
--- a/home/modules/theming.nix
+++ b/home/modules/stylix.nix
@@ -1,4 +1,8 @@
{pkgs, ...}: {
+ home.packages = with pkgs; [
+ libsForQt5.qt5ct
+ ];
+
stylix = {
enable = true;
overlays.enable = false;
@@ -8,8 +12,34 @@
qt.enable = true;
};
- base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-material-dark-medium.yaml";
- opacity.terminal = 0.85;
+ #base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
+
+ base16Scheme = {
+ base00 = "1e1e2e"; # base
+ base01 = "181825"; # mantle
+ base02 = "313244"; # surface0
+ base03 = "45475a"; # surface1
+ base04 = "585b70"; # surface2
+ base05 = "cdd6f4"; # text
+ base06 = "f5e0dc"; # rosewater
+ base07 = "b4befe"; # lavender
+ base08 = "f38ba8"; # red
+ base09 = "fab387"; # peach
+ base0A = "f9e2af"; # yellow
+ base0B = "A4E6FF"; # green
+ base0C = "94e2d5"; # teal
+ base0D = "89b4fa"; # blue
+ base0E = "cba6f7"; # mauve
+ base0F = "f2cdcd"; # flamingo
+ };
+
+ opacity.terminal = 0.75;
+
+ targets = {
+ nvf.enable = false;
+ hyprpanel.enable = false;
+ kde.enable = true;
+ };
cursor = {
package = pkgs.bibata-cursors;
@@ -21,7 +51,7 @@
sizes = {
applications = 10;
desktop = 10;
- terminal = 10;
+ terminal = 9;
popups = 8;
};
@@ -42,7 +72,8 @@
};
polarity = "dark";
- image = ../../assets/gruvbox_wallpaper.png;
+
+ image = ../../assets/shadow_dark.png;
};
qt.enable = true;
@@ -53,7 +84,6 @@
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
-
gtk3.extraConfig = {
gtk-recent-files-enabled = 0;
gtk-recent-files-limit = 0;
diff --git a/home/modules/zellij.nix b/home/modules/zellij.nix
new file mode 100644
index 0000000..e7dbe7b
--- /dev/null
+++ b/home/modules/zellij.nix
@@ -0,0 +1,17 @@
+{pkgs, ...}: {
+ home.packages = with pkgs; [
+ zellij
+ ];
+
+ programs.zellij = {
+ enable = true;
+ enableBashIntegration = false;
+ settings = {
+ on_force_close = "quit";
+ simplified_ui = true;
+ pane_frames = false;
+ default_layout = "compact";
+ show_startup_tips = false;
+ };
+ };
+}