Shadow config v1.0

This commit is contained in:
max_ag 2025-07-16 17:21:23 +02:00
commit 84bc5de209
25 changed files with 2324 additions and 0 deletions

22
home/home.nix Normal file
View file

@ -0,0 +1,22 @@
{
home = {
username = "maxag";
homeDirectory = "/home/maxag";
stateVersion = "25.11";
};
programs.home-manager.enable = true;
imports = [
./modules/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/zen.nix
];
}

View file

@ -0,0 +1,6 @@
{pkgs, ...}: {
home.packages = with pkgs; [
discord
whatsapp-for-linux # Was ist los
];
}

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

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

@ -0,0 +1,298 @@
{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"
];
env = [
"NIXOS_OZONE_WL, 1"
"XDG_SESSION_TYPE, wayland"
"XDG_SESSION_DESKTOP, Hyprland"
];
input = {
kb_layout = "cz";
kb_options = "caps:escape";
numlock_by_default = true;
sensitivity = 0;
touchpad = {
natural_scroll = true;
};
};
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 = {
"$mainMod" = "SUPER";
layout = "dwindle";
gaps_in = 4;
gaps_out = 3;
border_size = 2;
no_border_on_floating = false;
};
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
"$mainMod, Return, exec, foot"
"$mainMod, B, exec, firefox"
"$mainMod, Q, killactive,"
"$mainMod, F, fullscreen, 0"
"$mainMod SHIFT, F, fullscreen, 1"
"$mainMod, W, togglefloating"
"$mainMod, A, exec, fuzzel"
"$mainMod, P, pseudo,"
"$mainMod, E, exec, dolphin"
"$mainMod, C, exec, hyprpicker -a"
"$mainMod, code:23, swapsplit"
"$mainMod, code:66, togglesplit"
# switch focus
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
"$mainMod, h, movefocus, l"
"$mainMod, j, movefocus, d"
"$mainMod, k, movefocus, u"
"$mainMod, l, movefocus, r"
"$mainMod, left, alterzorder, top"
"$mainMod, right, alterzorder, top"
"$mainMod, up, alterzorder, top"
"$mainMod, down, alterzorder, top"
"$mainMod, h, alterzorder, top"
"$mainMod, j, alterzorder, top"
"$mainMod, k, alterzorder, top"
"$mainMod, l, alterzorder, top"
# switch workspace
"$mainMod, code:10, workspace, 1"
"$mainMod, code:11, workspace, 2"
"$mainMod, code:12, workspace, 3"
"$mainMod, code:13, workspace, 4"
"$mainMod, code:14, workspace, 5"
"$mainMod, code:15, workspace, 6"
"$mainMod, code:16, workspace, 7"
"$mainMod, code:17, workspace, 8"
"$mainMod, code:18, workspace, 9"
"$mainMod, code:19, workspace, 10"
# same as above, but switch to the workspace
"$mainMod SHIFT, code:10, movetoworkspacesilent, 1"
"$mainMod SHIFT, code:11, movetoworkspacesilent, 2"
"$mainMod SHIFT, code:12, movetoworkspacesilent, 3"
"$mainMod SHIFT, code:13, movetoworkspacesilent, 4"
"$mainMod SHIFT, code:14, movetoworkspacesilent, 5"
"$mainMod SHIFT, code:15, movetoworkspacesilent, 6"
"$mainMod SHIFT, code:16, movetoworkspacesilent, 7"
"$mainMod SHIFT, code:17, movetoworkspacesilent, 8"
"$mainMod SHIFT, code:18, movetoworkspacesilent, 9"
"$mainMod SHIFT, code:19, movetoworkspacesilent, 10"
# window control
"$mainMod SHIFT, left, movewindow, l"
"$mainMod SHIFT, right, movewindow, r"
"$mainMod SHIFT, up, movewindow, u"
"$mainMod SHIFT, down, movewindow, d"
"$mainMod SHIFT, h, movewindow, l"
"$mainMod SHIFT, j, movewindow, d"
"$mainMod SHIFT, k, movewindow, u"
"$mainMod SHIFT, l, movewindow, r"
"$mainMod CTRL, left, resizeactive, -80 0"
"$mainMod CTRL, right, resizeactive, 80 0"
"$mainMod CTRL, up, resizeactive, 0 -80"
"$mainMod CTRL, down, resizeactive, 0 80"
"$mainMod CTRL, h, resizeactive, -80 0"
"$mainMod CTRL, j, resizeactive, 0 80"
"$mainMod CTRL, k, resizeactive, 0 -80"
"$mainMod CTRL, l, resizeactive, 80 0"
"$mainMod ALT, left, moveactive, -80 0"
"$mainMod ALT, right, moveactive, 80 0"
"$mainMod ALT, up, moveactive, 0 -80"
"$mainMod ALT, down, moveactive, 0 80"
"$mainMod ALT, h, moveactive, -80 0"
"$mainMod ALT, j, moveactive, 0 80"
"$mainMod ALT, k, moveactive, 0 -80"
"$mainMod ALT, l, moveactive, 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 = [
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
windowrule = [
# "float,class:^(mpv)$"
];
workspace = [
"1, monitor:DP-1"
"2, 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 = {
enable = true;
systemd.enable = true;
settings = {
bar = {
launcher.autoDetectIcon = true;
workspaces.show_numbered = true;
layouts = {
"*" = {
left = [
"dashboard"
"workspaces"
];
middle = [];
right = [
"volume"
"clock"
"systray"
"notifications"
];
};
};
};
menus.clock = {
time = {
military = true;
hideSeconds = true;
};
weather.enabled = false;
};
menus.dashboard.directories.enabled = false;
menus.dashboard.shortcuts.enabled = true;
menus.dashboard.stats.enabled = false;
menus.dashboard.controls.enabled = false;
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.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
];
}

View file

@ -0,0 +1,21 @@
{pkgs, ...}: {
home.packages = with pkgs; [
libreoffice
kdePackages.kate
kdePackages.dolphin
kdePackages.ark
trilium-next-desktop
krita
libresprite
mpv
inkscape
qimgv
wineWowPackages.staging
ytmdesktop
];
home.file.".config/kdeglobals".text = ''
[General]
TerminalApplication=foot
'';
}

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

@ -0,0 +1,129 @@
{
pkgs,
inputs,
...
}: {
imports = [
inputs.nvf.homeManagerModules.default
];
programs.nvf = {
enable = true;
settings.vim = {
lsp = {
enable = true;
formatOnSave = true;
lspkind.enable = true;
lspsaga.enable = false;
trouble.enable = true;
};
debugger = {
nvim-dap = {
enable = true;
ui.enable = true;
};
};
options = {
tabstop = 2;
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;
css.enable = true;
html.enable = true;
sql.enable = true;
ts.enable = true;
zig.enable = true;
csharp.enable = true;
rust = {
enable = true;
crates.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 = false;
blink-cmp.enable = true;
};
snippets.luasnip.enable = true;
telescope.enable = true;
git = {
enable = true;
gitsigns.enable = true;
gitsigns.codeActions.enable = false;
};
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;
};
};
};
}

View file

@ -0,0 +1,9 @@
{pkgs, ...}: {
home.packages = with pkgs; [
rust-bin.stable.latest.default
dotnetCorePackages.sdk_8_0_3xx-bin
gcc
gnumake
godot
];
}

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

@ -0,0 +1,89 @@
{pkgs, ...}: {
imports = [
./zellij.nix
];
home.packages = with pkgs; [
fuzzel
btop
fastfetch
oh-my-posh
];
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"
"memory"
{
type = "gpu";
key = "GPU";
detectionMethod = "pci";
hideType = "integrated";
}
"wm"
"terminal"
"shell"
"editor"
];
};
};
foot = {
enable = true;
settings.main = {
term = "xterm-256color";
};
};
git = {
enable = true;
userEmail = "max.stribrny@gmail.com";
userName = "max_ag";
extraConfig = {
credential.helper = "${
pkgs.git.override {withLibsecret = true;}
}/bin/git-credential-libsecret";
push = {autoSetupRemote = true;};
init.defaultBranch = "main";
};
};
oh-my-posh = {
enable = true;
enableNushellIntegration = true;
enableBashIntegration = true;
settings = builtins.fromTOML (builtins.readFile ../../assets/oh-my-posh-shadow.toml);
};
};
}

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

@ -0,0 +1,55 @@
{pkgs, ...}: {
home.packages = with pkgs; [
bat
];
home.sessionVariables = {
EDITOR = "nvim";
};
programs = {
bash.enable = true;
nushell = {
enable = true;
extraConfig = ''
$env.config.buffer_editor = "nvim"
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
}
'';
settings = {
show_banner = false;
};
shellAliases = {
zel = "zellij";
rebuild = "sudo nixos-rebuild switch --flake /home/maxag/.nix-config";
flake = "nvim /home/maxag/.nix-config/flake.nix";
home = "nvim /home/maxag/.nix-config/home/home.nix";
config = "nvim /home/maxag/.nix-config/configuration/configuration.nix";
projects = "cd /mnt/removable/Projekty";
cat = "bat -p -P";
nix-shell = "nix-shell --run nu";
};
};
};
}

60
home/modules/stylix.nix Normal file
View file

@ -0,0 +1,60 @@
{pkgs, ...}: {
stylix = {
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
};
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 Mono";
};
sansSerif = {
package = pkgs.dejavu_fonts;
name = "DejaVu Sans";
};
serif = {
package = pkgs.dejavu_fonts;
name = "DejaVu Serif";
};
};
polarity = "dark";
image = ../../assets/shadow_dark.png;
};
}

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

7
home/modules/zen.nix Normal file
View file

@ -0,0 +1,7 @@
{inputs, ...}: {
imports = [
inputs.zen-browser.homeModules.twilight-official
];
programs.zen-browser.enable = true;
}