begin modularization

This commit is contained in:
Odweta
2026-01-12 10:16:59 +01:00
parent 9c9cbada43
commit 939d734e91
39 changed files with 40 additions and 60 deletions
+10
View File
@@ -0,0 +1,10 @@
{ pkgs, ... }:
{
programs.bash = {
enable = true;
shellAliases = {
rebuild = "sudo nixos-rebuild switch --flake /home/odweta/nixos/#nixos";
};
};
}
+5
View File
@@ -0,0 +1,5 @@
{ pkgs, ... }:
{
programs.fastfetch.enable = true;
}
+11
View File
@@ -0,0 +1,11 @@
{ config, pkgs, ... }:
{
programs.git = {
enable = true;
settings.user = {
name = "Odweta";
email = "code.62rdl@aleeas.com";
};
};
}
+107
View File
@@ -0,0 +1,107 @@
{ pkgs, ... }:
{
programs.wofi.enable = true;
# hypr packages
home.packages = with pkgs; [
hypridle
hyprlock
wofi
xss-lock
];
# some env vars for improvement
home.sessionVariables = {
NIXOS_OZONE_WL = "1";
WLR_NO_HARDWARE_CURSORS = "1";
};
# hyprland config
wayland.windowManager.hyprland = {
enable = true;
settings = {
exec-once = [
"waybar"
"xss-lock -l hyprlock"
];
monitor = [
"HDMI-A-2, 1920x1080@60, 0x0, 1"
"eDP-1, 1920x1080@60, 0x1080, 1"
];
input = {
kb_layout = "us,cz";
kb_variant = ",qwerty";
kb_options = "grp:alt_shift_toggle";
touchpad = {
natural_scroll = true;
};
};
windowrule = [
"float,title:\"nmtui-popup\""
"center,title:\"nmtui-popup\""
];
general = {
gaps_in = 5;
gaps_out = 10;
border_size = 2;
layout = "master";
};
master = {
new_status = "master";
mfact = 0.5;
};
decoration = {
rounding = 0;
};
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
};
"$mod" = "SUPER";
"$term" = "${pkgs.kitty}/bin/kitty";
"$menu" = "${pkgs.wofi}/bin/wofi --show run";
"$lock" = "${pkgs.hyprlock}/bin/hyprlock";
bind = [
"$mod SHIFT, RETURN, exec, $term"
"$mod SHIFT, C, killactive"
"$mod SHIFT, Q, exit"
"$mod, P, exec, $menu"
"$mod, L, exec, $lock"
"$mod, H, movefocus, l"
"$mod, J, movefocus, r"
"$mod, K, movefocus, u"
"$mod, L, movefocus, d"
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
"$mod, 3, workspace, 3"
"$mod, 4, workspace, 4"
"$mod SHIFT, 1, movetoworkspace, 1"
"$mod SHIFT, 2, movetoworkspace, 2"
"$mod SHIFT, 3, movetoworkspace, 3"
"$mod SHIFT, 4, movetoworkspace, 4"
", XF86MonBrightnessUp, exec, light -A 10"
", XF86MonBrightnessDown, exec, light -U 10"
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_SINK@ 5%-"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle"
];
};
};
}
+7
View File
@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
keepassxc
];
}
+80
View File
@@ -0,0 +1,80 @@
{ pkgs, ... }:
{
programs.kitty = {
enable = true;
package = pkgs.kitty;
font = {
name = "Hurmit Nerd Font Mono";
size = 16.0;
};
settings = {
# Performance / rendering
enable_audio_bell = "no";
repaint_delay = 10;
input_delay = 1;
sync_to_monitor = "yes";
# Wayland
wayland_enable_ime = "yes";
linux_display_server = "wayland";
# Clipboard
clipboard_control = "write-clipboard write-primary read-clipboard";
# Cursor
cursor_shape = "block";
cursor_blink_interval = 0;
# Scrollback
scrollback_lines = 10000;
# Window
remember_window_size = "yes";
initial_window_width = "100c";
initial_window_height = "30c";
confirm_os_window_close = 0;
# Tabs
tab_bar_style = "powerline";
tab_powerline_style = "slanted";
active_tab_font_style = "bold";
inactive_tab_font_style = "normal";
# Shell
shell = "${pkgs.bash}/bin/bash";
# Colors (example dark)
background = "#0f111a";
foreground = "#c0caf5";
selection_background = "#33467c";
selection_foreground = "#ffffff";
};
keybindings = {
"ctrl+shift+enter" = "new_window";
"ctrl+shift+t" = "new_tab";
"ctrl+shift+w" = "close_tab";
"ctrl+shift+right" = "next_tab";
"ctrl+shift+left" = "previous_tab";
"ctrl+shift+up" = "increase_font_size";
"ctrl+shift+down" = "decrease_font_size";
"ctrl+shift+c" = "copy_to_clipboard";
"ctrl+shift+v" = "paste_from_clipboard";
};
extraConfig = ''
# Disable ligatures selectively (example)
disable_ligatures never
# URL hints
map ctrl+shift+u kitten hints
# Truecolor fix
term xterm-kitty
'';
};
}
+7
View File
@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
prismlauncher
];
}
+7
View File
@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
syncthing
];
}
+17
View File
@@ -0,0 +1,17 @@
{ pkgs, ... }:
{
programs.vim = {
enable = true;
plugins = with pkgs.vimPlugins; [ vim-airline ];
settings = { ignorecase = true; };
extraConfig = ''
set sw=2
set ts=2
set et
set smartindent
set number
syntax on
'';
};
}
+224
View File
@@ -0,0 +1,224 @@
{ pkgs, ... }:
{
programs.waybar = {
enable = true;
settings = [{
layer = "top";
position = "top";
output = [ "HDMI-A-2" "eDP-1" ];
modules-left = [ "hyprland/workspaces" ];
modules-center = [ "hyprland/window" ];
modules-right = [ "bluetooth" "network" "pulseaudio" "backlight" "battery" "clock" "tray" ];
bluetooth = {
format = "󰂲";
format-on = "{icon}";
format-off = "{icon}";
format-connected = "{icon}";
format-icons = {
on ="󰂯";
off = "󰂲";
connected ="󰂱";
};
on-click = "blueman-manager";
tooltip-format-connected = "{device_enumerate}";
};
network = {
format-wifi = "󰤢";
format-ethernet = "󰈀";
format-disconnected = "󰤠";
interval = 5;
tooltip-format = "{essid} ({signalStrength}%)";
on-click = "kitty --title \"nmtui-popup\" -e nmtui";
};
clock = {
format = "{:%Y-%m-%d %H:%M}";
};
"hyprland/workspaces" = {
all-outputs = false;
disable-scroll = true;
};
}];
style = ''
/* --- Global Styles --- */
* {
font-family: Hurmit Nerd Font Mono;
font-size: 16px;
min-height: 0;
padding-right: 0px;
padding-left: 0px;
padding-bottom: 0px;
border-radius: 0;
}
/* --- Waybar Container --- */
#waybar {
background: transparent;
color: #c6d0f5;
margin: 0px;
font-weight: 500;
border-radius: 0;
}
/* --- Left Modules (Individual, Fully Rounded Blocks - With Horizontal Spacing & Simple Hover) --- */
#workspaces,
#custom-uptime,
#cpu {
background-color: #1a1b26;
padding: 0.3rem 0.7rem;
margin: 5px 0px; /* 5px top/bottom margin, 0px left/right (base for individual control) */
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
min-width: 0;
border: none;
/* Transition for background-color and color only */
transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
border-radius: 0;
}
#workspaces {
padding: 2px;
margin-left: 7px; /* Margin from the far left edge */
margin-right: 5px; /* Spacing after the workspaces module */
}
#workspaces button {
color: #babbf1;
padding: 0.3rem 0.6rem;
background: transparent;
transition: all 0.2s ease-in-out;
border: none;
outline: none;
border-radius: 0;
}
#workspaces button.active {
color: #99d1db;
background-color: rgba(153, 209, 219, 0.1);
border-radius: 0;
}
#workspaces button:hover {
background: rgb(41, 42, 53); /* Reference bright hover color */
color: #c6d0f5;
border-radius: 0;
}
/* --- Center Module (Individual, Fully Rounded Block - With Simple Hover) --- */
#clock {
background-color: #1a1b26;
padding: 0.3rem 0.7rem;
margin: 5px 0px;
min-width: 0;
border: none;
transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
}
/* Simple Hover effect for clock module - BRIGHTER COLOR */
#clock:hover {
background-color: rgba(153, 209, 219, 0.1); /* Brighter highlight */
}
/* --- Right Modules (Single, Seamless Bar ) --- */
#bluetooth,
#pulseaudio,
#backlight,
#network,
#battery {
background-color: #1a1b26;
padding: 0.3rem 0.7rem;
margin: 5px 0px;
box-shadow: none;
min-width: 0;
border: none;
transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
}
#bluetooth:hover,
#pulseaudio:hover,
#backlight:hover,
#network:hover,
#custom-lock:hover,
#battery:hover {
background-color: rgb(41, 42, 53);
}
#bluetooth {
margin-left: 0px;
}
#battery {
margin-right: 7px;
}
#custom-uptime {
color: #babbf1;
}
#cpu {
color: #c6d0f5;
}
#clock {
color: #99d1db;
font-weight: 500;
}
#pulseaudio {
color: #c6d0f5;
}
#backlight {
color: #c6d0f5;
}
#network {
color: #c6d0f5;
}
#network.disconnected {
color: #e78284;
}
#custom-lock {
color: #babbf1;
}
#bluetooth {
color: #888888;
font-size: 16px;
}
#bluetooth.on {
color: #2196f3;
}
#bluetooth.connected {
color: #99d1db;
}
#battery {
color: #99d1db;;
}
#battery.charging {
color: #a6d189;
}
#battery.warning:not(.charging) {
color: #e78284;
}
/* --- Tooltip Styles --- */
tooltip {
background-color: #1a1b26;
color: #dddddd;
padding: 5px 12px;
margin: 5px 0px;
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
font-size: 12px;
border-radius: 0;
}
'';
};
}
+12
View File
@@ -0,0 +1,12 @@
{ pkgs, ... }:
{
xdg.mimeApps.defaultApplications = {
"text/plain" = [ "neovide.desktop" ];
"applications/pdf" = [ "zathura.desktop" ];
"image/*" = [ "sxiv.desktop" ];
"video/png" = [ "mpv.desktop" ];
"video/jpg" = [ "mpv.desktop" ];
"video/*" = [ "mpv.desktop" ];
};
}
+7
View File
@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
xournalpp
];
}