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 @@ +      ▄▀▀▀▀▀▀▀▀▄▄       +    ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄     +   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀    +  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄  + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄   +▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ +    ▄▀▀▀▀▀▀▀▀▀▀▀▀▄      +  ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄    +   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄   + ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  +  ▀ ▀ ▀▀▀▀ ▀▀▀▀▀ ▀▀     +            ▀▀         \ 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; + }; + }; +}