Compare commits

..

No commits in common. "96e5d27277cbfb4138048bee84acc888bdf1dba8" and "a46356a178d641cc7f8e09002edec7773bb4c106" have entirely different histories.

55 changed files with 1392 additions and 874 deletions

BIN
assets/dark_abstract.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 MiB

14
assets/shadow-cli.txt Normal file
View file

@ -0,0 +1,14 @@
      ▄▀▀▀▀▀▀▀▀▄▄      
    ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄    
   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀   
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ 
 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ 
 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ 
 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄  
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
    ▄▀▀▀▀▀▀▀▀▀▀▀▀▄     
  ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄   
   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄  
 ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ 
  ▀ ▀ ▀▀▀▀ ▀▀▀▀▀ ▀▀    
            ▀▀        

BIN
assets/shadow_dark.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 MiB

View file

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

View file

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

View file

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

View file

@ -0,0 +1,11 @@
{pkgs, ...}: {
boot = {
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
kernelPackages = pkgs.linuxPackages_latest;
#kernelPackages = pkgs.linuxPackages_zen;
};
}

View file

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

View file

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

View file

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

View file

@ -0,0 +1,3 @@
{
services.printing.enable = true;
}

View file

@ -0,0 +1,12 @@
{
programs = {
firefox.enable = true;
bash.blesh.enable = true; # Enhanced bash
nix-ld = {
enable = true;
#libraries = with pkgs; [
# Add libraries here
#];
};
};
}

View file

@ -14,7 +14,7 @@ in {
qtvirtualkeyboard
];
enable = true;
wayland.enable = true;
wayland.enable = false;
autoNumlock = true;
enableHidpi = false;
theme = "sddm-astronaut-theme";

View file

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

277
flake.lock generated
View file

@ -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": {

View file

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

View file

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

70
home/laptop/hyprland.nix Normal file
View file

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

View file

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

64
home/main/hyprland.nix Normal file
View file

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

View file

@ -0,0 +1,6 @@
{pkgs, ...}: {
home.packages = with pkgs; [
discord
wasistlos
];
}

View file

@ -54,9 +54,6 @@ in {
direnv allow
git init
".direnv" | save --append .gitignore
git add .
git commit -m "Project setup"

View file

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

View file

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

View file

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

View file

@ -0,0 +1 @@
/// <reference types="@motion-canvas/core/project" />

View file

@ -0,0 +1,7 @@
import {makeProject} from '@motion-canvas/core';
import example from './scenes/example?scene';
export default makeProject({
scenes: [example],
});

View file

@ -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<Circle>();
view.add(<Circle ref={circle} size={320} fill={'lightseagreen'} />);
yield* circle().scale(2, 2).to(1, 2);
});

View file

@ -0,0 +1,4 @@
{
"extends": "@motion-canvas/2d/tsconfig.project.json",
"include": ["src"]
}

View file

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

View file

@ -13,8 +13,6 @@
default = pkgs.mkShell {
buildInputs = with pkgs; [
dotnetCorePackages.sdk_10_0-bin
netcoredbg
csharp-ls
];
};
};

View file

@ -25,10 +25,7 @@
devShells."${system}" = {
default = pkgs.mkShell {
packages = [
pythonEnv
pkgs.pyright
];
packages = [pythonEnv];
};
};
};

View file

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

View file

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

View file

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

View file

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

12
home/modules/games.nix Normal file
View file

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

View file

@ -1,6 +0,0 @@
{
imports = [
./minecraft.nix
./heroic.nix
];
}

View file

@ -1,12 +0,0 @@
{
pkgs,
config,
lib,
...
}: {
config = lib.mkIf config.myModules.games.enable {
home.packages = with pkgs; [
heroic
];
};
}

View file

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

View file

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

325
home/modules/hyprland.nix Normal file
View file

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

View file

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

View file

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

191
home/modules/nvf.nix Normal file
View file

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

View file

@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
keepassxc
];
}

View file

@ -0,0 +1,7 @@
{pkgs, ...}: {
home.packages = with pkgs; [
godot
lazygit
arduino-ide
];
}

93
home/modules/rice.nix Normal file
View file

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

View file

@ -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' }]
})

View file

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

View file

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

127
home/modules/shells.nix Normal file
View file

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

View file

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

17
home/modules/zellij.nix Normal file
View file

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