oxidizing

This commit is contained in:
maxstrb 2026-03-14 21:45:57 +01:00
parent a46356a178
commit a9eadc52f3
35 changed files with 726 additions and 1223 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 MiB

View file

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 MiB

View file

@ -1,21 +1,13 @@
{
imports = [
../modules/locale.nix
../modules/main-user.nix
../modules/system.nix
../modules/boot.nix
../modules/desktop.nix
../modules/audio.nix
../modules/printing.nix
../modules/programs.nix
../modules/ld.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;
};
@ -28,13 +20,4 @@
Policy.AutoEnable = true;
};
};
networking = {
proxy.noProxy = "127.0.0.1,localhost,internal.domain";
networkmanager = {
enable = true;
};
firewall.enable = true;
};
}

View file

@ -3,29 +3,12 @@
./verbatim.nix
../modules/steam.nix
../modules/locale.nix
../modules/desktop.nix
../modules/main-user.nix
../modules/system.nix
../modules/boot.nix
../modules/desktop.nix
../modules/audio.nix
../modules/printing.nix
../modules/programs.nix
../modules/ld.nix
../modules/sddm.nix
];
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];
};
};
networking.allowedTCPPorts = [9123];
}

View file

@ -1,14 +0,0 @@
{
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

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

View file

@ -1,10 +1,4 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
wl-clipboard
libsForQt5.qt5.qtquickcontrols2
libsForQt5.qt5.qtgraphicaleffects
];
{
hardware.graphics = {
enable = true;
enable32Bit = true;
@ -16,32 +10,8 @@
portal.enable = true;
};
programs = {
hyprland = {
enable = true;
withUWSM = true;
package = pkgs.hyprland;
portalPackage = pkgs.xdg-desktop-portal-hyprland;
};
};
security.pam.services.hyprlock = {};
services = {
xserver = {
services.xserver = {
enable = true;
videoDrivers = ["amdgpu"];
xkb = {
layout = "cz";
variant = "";
options = "caps:escape";
};
};
};
environment.sessionVariables = {
TERMINAL = "foot";
EDITOR = "nvim";
NIXOS_OZONE_WL = "1";
};
}

View file

@ -0,0 +1,38 @@
{pkgs, ...}: {
programs.nix-ld = {
enable = true;
libraries = with pkgs; [
# Graphics
libGL
vulkan-loader
libdrm
libgbm
# Audio
alsa-lib
pulseaudio
pipewire
# Display / input
xorg.libX11
xorg.libXcursor
xorg.libXrandr
xorg.libXi
xorg.libXext
xorg.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

@ -1,19 +0,0 @@
{
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

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

View file

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

View file

@ -1,6 +1,73 @@
{device-name, ...}: {
networking.hostName = "max-${device-name}";
system = {
stateVersion = "25.11";
{
device-name,
pkgs,
lib,
...
}: {
system.stateVersion = "25.11";
nix.settings.experimental-features = ["nix-command" "flakes"];
nixpkgs.config.allowUnfree = true;
networking = {
networkmanager.enable = true;
hostName = "max-${device-name}";
proxy.noProxy = "127.0.0.1,localhost,internal.domain";
firewall = {
enable = true;
};
};
boot = {
loader = {
grub.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;
};
security.rtkit.enable = true;
programs.noisetorch.enable = true;
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";
};
};
services = {
printing.enable = true;
avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
};
environment.systemPackages = [
(lib.hiPrio pkgs.uutils-coreutils.override {prefix = "";})
(lib.hiPrio pkgs.uutils-findutils.override {prefix = "";})
];
}

View file

@ -1,5 +1,5 @@
{
description = "My personal Hyprland NixOS config";
description = "My personal NixOS config";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
@ -28,12 +28,20 @@
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 {
system = "x86_64-linux";
inherit system;
specialArgs = {
inherit inputs device-name;
};
@ -41,19 +49,22 @@
./configuration/${device-name}/configuration.nix
./configuration/${device-name}/hardware-configuration.nix
inputs.home-manager.nixosModules.default
inputs.stylix.nixosModules.stylix
{
home-manager = {
enable = true;
useUserPackages = true;
useGlobalPkgs = true;
extraSpecialArgs = {
inherit inputs device-name;
inherit inputs device-name system;
};
backupFileExtension = null;
users.maxag = ./home/${device-name}/home.nix;
sharedModules = [
inputs.stylix.homeModules.stylix
];
users.maxag = {
imports = [./home/${device-name}/home.nix];
home.stateVersion = "25.11";
};
};
}
];

View file

@ -1,26 +1,3 @@
{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
];
{
imports = [../modules/default.nix];
}

View file

@ -1,70 +0,0 @@
{
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,23 +1,5 @@
{
home = {
username = "maxag";
homeDirectory = "/home/maxag";
stateVersion = "25.11";
};
imports = [../modules/default.nix];
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
];
myModules.games.enable = true;
}

View file

@ -1,64 +0,0 @@
{
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

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

View file

@ -0,0 +1,32 @@
{pkgs, ...}: {
home.packages = with pkgs; [
# Browser
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.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
];
}

54
home/modules/default.nix Normal file
View file

@ -0,0 +1,54 @@
{
config,
lib,
...
}: let
cfg = config.myModules;
in {
options.myModules = {
games.enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable games module.";
};
dailyApps.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Enable daily applications.";
};
niri.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Enable niri wayland compositor config.";
};
nvf.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Enable nvf (neovim) configuration.";
};
shell.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Enable shell configuration.";
};
createProject.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Enable create-project tooling.";
};
};
imports = [
(lib.mkIf cfg.dailyApps.enable ./daily_apps.nix)
(lib.mkIf cfg.niri.enable ./niri.nix)
(lib.mkIf cfg.nvf.enable ./nvf.nix)
(lib.mkIf cfg.shell.enable ./shell.nix)
(lib.mkIf cfg.games.enable ./games/minecraft.nix)
(lib.mkIf cfg.createProject.enable ./create-project)
];
}

View file

@ -1,325 +0,0 @@
{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

@ -1,42 +0,0 @@
{
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;
};
}

158
home/modules/niri.nix Normal file
View file

@ -0,0 +1,158 @@
{
pkgs,
inputs,
...
}: {
imports = [inputs.niri-flake.homeModules.niri];
home.packages = with pkgs; [
swaybg
wl-clipboard
];
programs = {
alacritty.enable = true;
fuzzel.enable = true;
swaylock.enable = true;
waybar.enable = true;
mako.enable = true;
swayidle.enable = true;
polkit-gnome.enable = true;
};
programs.niri = {
enable = true;
settings = {
spawn-at-startup = [
{command = ["waybar"];}
];
input = {
keyboard = {
xkb = {
layout = "cz";
options = "caps:escape";
};
};
};
outputs = {
"DP-1".mode = {
width = 2560;
height = 1440;
};
"DP-2".mode = {
width = 1920;
height = 1080;
};
};
environment = {
NIXOS_OZONE_WL = "1";
TERMINAL = "foot";
SDL_VIDEODRIVER = "wayland";
CLUTTER_BACKEND = "wayland";
};
gestures = {
hot-corners.enable = false;
};
layout = {
gaps = 8;
default-column-width = {proportion = 1;};
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;
}
];
input = {
keyboard.numlock = true;
warp-mouse-to-focus.enable = true;
focus-follows-mouse = {
enable = true;
max-scroll-amount = "0%";
};
};
binds = {
"Mod+Q".action.close-window = [];
"Mod+Return".action.spawn = ["foot"];
"Mod+A".action.spawn = ["fuzzel"];
"Mod+B".action.spawn = ["zen"];
"Mod+O".action.toggle-overview = [];
# 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%"];
"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"];
};
};
};
}

View file

@ -1,191 +1,222 @@
{
pkgs,
inputs,
...
}: {
imports = [
inputs.nvf.homeManagerModules.default
];
programs.nvf = {
{pkgs, ...}: {
programs.helix = {
enable = true;
enableManpages = true;
settings.vim = {
extraPackages = [pkgs.netcoredbg];
settings = {
theme = "catppuccin_mocha";
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,
},
}
'';
editor = {
# options
indent-guides.render = true;
cursorline = true;
color-modes = true;
theme = {
enable = true;
transparent = true;
name = "catppuccin";
style = "mocha";
indent = {
tab-width = 2;
unit = "\t";
};
lsp = {
enable = true;
null-ls.enable = false;
inlayHints.enable = true;
formatOnSave = true;
lspkind.enable = true;
lspsaga.enable = true;
trouble.enable = true;
lightbulb.enable = false;
display-inlay-hints = true;
display-messages = true;
};
debugger = {
nvim-dap = {
enable = true;
ui.enable = true;
};
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
options = {
tabstop = 2;
expandtab = false;
autoindent = true;
shiftwidth = 2;
clipboard-provider = "wayland";
statusline = {
left = ["mode" "spinner" "file-name" "file-modification-indicator"];
right = ["diagnostics" "selections" "position" "file-encoding" "file-type"];
center = ["workspace-diagnostics"];
};
clipboard = {
enable = true;
registers = "unnamedplus";
providers = {
wl-copy = {
enable = true;
package = pkgs.wl-clipboard;
};
auto-pairs = true;
file-picker.hidden = false;
};
};
languages = {
enableFormat = true;
enableTreesitter = true;
enableExtraDiagnostics = true;
language-server = {
nil = {
command = "nil";
config.nil.formatting.command = ["nixfmt"];
};
marksman = {command = "marksman";};
taplo = {
command = "taplo";
args = ["lsp" "stdio"];
};
bash-ls = {
command = "bash-language-server";
args = ["start"];
};
tinymist = {command = "tinymist";}; # typst
vscode-css = {
command = "vscode-css-language-server";
args = ["--stdio"];
};
vscode-html = {
command = "vscode-html-language-server";
args = ["--stdio"];
};
emmet-ls = {
command = "emmet-ls";
args = ["--stdio"];
};
pyright = {
command = "pyright-langserver";
args = ["--stdio"];
};
ts-ls = {
command = "typescript-language-server";
args = ["--stdio"];
};
zls = {command = "zls";};
omnisharp = {
command = "OmniSharp";
args = ["--languageserver"];
};
clangd = {command = "clangd";};
rust-analyzer = {
command = "rust-analyzer";
config.rust-analyzer = {
check.command = "clippy";
cargo.allFeatures = true;
};
};
nu = {
command = "nu";
args = ["--lsp"];
};
};
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"
language = [
{
name = "nix";
auto-format = true;
language-servers = ["nil"];
formatter.command = "nixfmt";
}
{
name = "markdown";
auto-format = true;
language-servers = ["marksman"];
}
{
name = "toml";
auto-format = true;
language-servers = ["taplo"];
}
{
name = "nu";
language-servers = ["nu"];
}
{
name = "bash";
auto-format = true;
language-servers = ["bash-ls"];
}
{
name = "typst";
auto-format = true;
language-servers = ["tinymist"];
}
{
name = "css";
auto-format = true;
language-servers = ["vscode-css"];
}
{
name = "html";
auto-format = true;
language-servers = ["vscode-html" "emmet-ls"];
}
{
name = "python";
auto-format = true;
language-servers = ["pyright"];
}
{
name = "typescript";
auto-format = true;
language-servers = ["ts-ls"];
}
{
name = "tsx";
auto-format = true;
language-servers = ["ts-ls"];
}
{
name = "zig";
auto-format = true;
language-servers = ["zls"];
}
{
name = "c-sharp";
auto-format = true;
language-servers = ["omnisharp"];
debugger = {
name = "netcoredbg";
transport = "tcp";
command = "netcoredbg";
port-arg = "--server={port}";
templates = [
{
name = "launch";
request = "launch";
completion = [
{
name = "DLL path";
completion = "filename";
default = "bin/Debug/net8.0/App.dll";
}
];
args = {
type = "coreclr";
request = "launch";
program = "{0}";
};
}
{
name = "attach";
request = "attach";
completion = [
{
name = "PID";
completion = "pid";
}
];
args = {
type = "coreclr";
request = "attach";
processId = "{0}";
};
}
];
};
python.enable = true;
sql.enable = false;
ts.enable = true;
zig.enable = true;
csharp = {
enable = true;
lsp.servers = ["omnisharp"];
}
{
name = "c";
auto-format = true;
language-servers = ["clangd"];
}
{
name = "cpp";
auto-format = true;
language-servers = ["clangd"];
}
{
name = "rust";
auto-format = true;
language-servers = ["rust-analyzer"];
}
];
};
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

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

View file

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

View file

@ -1,93 +0,0 @@
{
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

@ -0,0 +1,46 @@
if "ZELLIJ" in $env == false {
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-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' }]
})

View file

@ -0,0 +1,93 @@
{
pkgs,
device-name,
...
}: {
home.packages = with pkgs; [
bat
fzf
fd
eza
btop
man-pages
inputs.floatc.packages.${pkgs.stdenv.hostPlatform.system}.default
];
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 = builtins.readFile "config.nu";
settings = {
show_banner = false;
};
shellAliases = {
system = "nvim /home/maxag/.nix-config/flake.nix";
home = "nvim /home/maxag/.nix-config/home/${device-name}/home.nix";
cat = "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;
};
};
gtk.enable = true;
qt.enable = true;
programs = {
btop.enable = true;
foot = {
enable = true;
settings = {
main = {
term = "xterm-256color";
};
};
};
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";
};
};
};
}

View file

@ -1,127 +0,0 @@
{
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,93 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
libsForQt5.qt5ct
];
stylix = {
enable = true;
overlays.enable = false;
targets = {
gtk.enable = true;
qt.enable = true;
};
#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;
name = "Bibata-Modern-Ice";
size = 14;
};
fonts = {
sizes = {
applications = 10;
desktop = 10;
terminal = 9;
popups = 8;
};
monospace = {
package = pkgs.nerd-fonts.jetbrains-mono;
name = "JetBrainsMono Nerd Font";
};
sansSerif = {
package = pkgs.dejavu_fonts;
name = "DejaVu Sans";
};
serif = {
package = pkgs.dejavu_fonts;
name = "DejaVu Serif";
};
};
polarity = "dark";
image = ../../assets/shadow_dark.png;
};
qt.enable = true;
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
gtk3.extraConfig = {
gtk-recent-files-enabled = 0;
gtk-recent-files-limit = 0;
gtk-recent-files-max-age = 0;
};
};
}

View file

@ -1,17 +0,0 @@
{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;
};
};
}