mirror of
https://gitlab.com/Zaney/zaneyos.git
synced 2025-03-12 20:38:22 +01:00
531 lines
16 KiB
Nix
531 lines
16 KiB
Nix
{
|
||
pkgs,
|
||
inputs,
|
||
username,
|
||
host,
|
||
config,
|
||
...
|
||
}:
|
||
let
|
||
inherit (import ./variables.nix)
|
||
gitUsername
|
||
gitEmail
|
||
;
|
||
in
|
||
{
|
||
# Home Manager Settings
|
||
home.username = "${username}";
|
||
home.homeDirectory = "/home/${username}";
|
||
home.stateVersion = "23.11";
|
||
|
||
# Import Program Configurations
|
||
imports = [
|
||
inputs.hyprland.homeManagerModules.default
|
||
../../config/hyprland.nix
|
||
../../config/swaync.nix
|
||
../../config/waybar.nix
|
||
../../config/wlogout.nix
|
||
];
|
||
|
||
# Place Files Inside Home Directory
|
||
home.file."Pictures/Wallpapers" = {
|
||
source = ../../config/wallpapers;
|
||
recursive = true;
|
||
};
|
||
home.file.".config/wlogout/icons" = {
|
||
source = ../../config/wlogout;
|
||
recursive = true;
|
||
};
|
||
home.file.".local/share/fonts" = {
|
||
source = ../../config/fonts;
|
||
recursive = true;
|
||
};
|
||
home.file.".config/starship.toml".source = ../../config/starship.toml;
|
||
home.file.".config/ascii-neofetch".source = ../../config/ascii-neofetch;
|
||
home.file.".base16-themes".source = ../../config/base16-themes;
|
||
home.file.".face.icon".source = ../../config/face.jpg;
|
||
home.file.".config/face.jpg".source = ../../config/face.jpg;
|
||
home.file.".config/neofetch/config.conf".text = ''
|
||
print_info() {
|
||
prin "$(color 6) ZaneyOS $ZANEYOS_VERSION"
|
||
info underline
|
||
info "$(color 7) VER" kernel
|
||
info "$(color 2) UP " uptime
|
||
info "$(color 4) PKG" packages
|
||
info "$(color 6) DE " de
|
||
info "$(color 5) TER" term
|
||
info "$(color 3) CPU" cpu
|
||
info "$(color 7) GPU" gpu
|
||
info "$(color 5) MEM" memory
|
||
prin " "
|
||
prin "$(color 1) $(color 2) $(color 3) $(color 4) $(color 5) $(color 6) $(color 7) $(color 8)"
|
||
}
|
||
distro_shorthand="on"
|
||
memory_unit="gib"
|
||
cpu_temp="C"
|
||
separator=" $(color 4)>"
|
||
stdout="off"
|
||
'';
|
||
home.file.".config/swappy/config".text = ''
|
||
[Default]
|
||
save_dir=/home/${username}/Pictures/Screenshots
|
||
save_filename_format=swappy-%Y%m%d-%H%M%S.png
|
||
show_panel=false
|
||
line_size=5
|
||
text_size=20
|
||
text_font=Ubuntu
|
||
paint_mode=brush
|
||
early_exit=true
|
||
fill_shape=false
|
||
'';
|
||
|
||
|
||
# Install & Configure Git
|
||
programs.git = {
|
||
enable = true;
|
||
userName = "${gitUsername}";
|
||
userEmail = "${gitEmail}";
|
||
};
|
||
|
||
# Create XDG Dirs
|
||
xdg = {
|
||
userDirs = {
|
||
enable = true;
|
||
createDirectories = true;
|
||
};
|
||
};
|
||
|
||
dconf.settings = {
|
||
"org/virt-manager/virt-manager/connections" = {
|
||
autoconnect = [ "qemu:///system" ];
|
||
uris = [ "qemu:///system" ];
|
||
};
|
||
};
|
||
|
||
# Styling Options
|
||
stylix.targets.waybar.enable = false;
|
||
stylix.targets.rofi.enable = false;
|
||
|
||
# Scripts
|
||
home.packages = [
|
||
(import ../../scripts/emopicker9000.nix { inherit pkgs; })
|
||
(import ../../scripts/task-waybar.nix { inherit pkgs; })
|
||
(import ../../scripts/squirtle.nix { inherit pkgs; })
|
||
(import ../../scripts/themechange.nix {
|
||
inherit pkgs;
|
||
inherit host;
|
||
inherit username;
|
||
})
|
||
(import ../../scripts/theme-selector.nix { inherit pkgs; })
|
||
(import ../../scripts/nvidia-offload.nix { inherit pkgs; })
|
||
(import ../../scripts/wallsetter.nix {
|
||
inherit pkgs;
|
||
inherit username;
|
||
})
|
||
(import ../../scripts/web-search.nix { inherit pkgs; })
|
||
(import ../../scripts/rofi-launcher.nix { inherit pkgs; })
|
||
(import ../../scripts/screenshootin.nix { inherit pkgs; })
|
||
(import ../../scripts/list-hypr-bindings.nix {
|
||
inherit pkgs;
|
||
inherit host;
|
||
})
|
||
];
|
||
|
||
services = {
|
||
hypridle = {
|
||
settings = {
|
||
general = {
|
||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||
ignore_dbus_inhibit = false;
|
||
lock_cmd = "hyprlock";
|
||
};
|
||
listener = [
|
||
{
|
||
timeout = 900;
|
||
on-timeout = "hyprlock";
|
||
}
|
||
{
|
||
timeout = 1200;
|
||
on-timeout = "hyprctl dispatch dpms off";
|
||
on-resume = "hyprctl dispatch dpms on";
|
||
}
|
||
];
|
||
};
|
||
};
|
||
};
|
||
|
||
programs = {
|
||
gh.enable = true;
|
||
neovim = {
|
||
enable = true;
|
||
defaultEditor = true;
|
||
viAlias = true;
|
||
vimAlias = true;
|
||
vimdiffAlias = true;
|
||
withNodeJs = true;
|
||
extraPackages = with pkgs; [
|
||
lua-language-server
|
||
gopls
|
||
xclip
|
||
wl-clipboard
|
||
luajitPackages.lua-lsp
|
||
nil
|
||
rust-analyzer
|
||
nodePackages.bash-language-server
|
||
yaml-language-server
|
||
pyright
|
||
marksman
|
||
];
|
||
plugins = with pkgs.vimPlugins; [
|
||
alpha-nvim
|
||
auto-session
|
||
bufferline-nvim
|
||
dressing-nvim
|
||
indent-blankline-nvim
|
||
nvim-treesitter.withAllGrammars
|
||
lualine-nvim
|
||
nvim-autopairs
|
||
nvim-web-devicons
|
||
nvim-cmp
|
||
nvim-surround
|
||
nvim-lspconfig
|
||
cmp-nvim-lsp
|
||
cmp-buffer
|
||
luasnip
|
||
cmp_luasnip
|
||
friendly-snippets
|
||
lspkind-nvim
|
||
comment-nvim
|
||
nvim-ts-context-commentstring
|
||
{
|
||
plugin = dracula-nvim;
|
||
}
|
||
plenary-nvim
|
||
neodev-nvim
|
||
luasnip
|
||
telescope-nvim
|
||
todo-comments-nvim
|
||
nvim-tree-lua
|
||
telescope-fzf-native-nvim
|
||
vim-tmux-navigator
|
||
];
|
||
extraConfig = ''
|
||
set noemoji
|
||
'';
|
||
extraLuaConfig = ''
|
||
${builtins.readFile ../../config/nvim/options.lua}
|
||
${builtins.readFile ../../config/nvim/keymaps.lua}
|
||
${builtins.readFile ../../config/nvim/plugins/alpha.lua}
|
||
${builtins.readFile ../../config/nvim/plugins/autopairs.lua}
|
||
${builtins.readFile ../../config/nvim/plugins/auto-session.lua}
|
||
${builtins.readFile ../../config/nvim/plugins/comment.lua}
|
||
${builtins.readFile ../../config/nvim/plugins/cmp.lua}
|
||
${builtins.readFile ../../config/nvim/plugins/lsp.lua}
|
||
${builtins.readFile ../../config/nvim/plugins/nvim-tree.lua}
|
||
${builtins.readFile ../../config/nvim/plugins/telescope.lua}
|
||
${builtins.readFile ../../config/nvim/plugins/todo-comments.lua}
|
||
${builtins.readFile ../../config/nvim/plugins/treesitter.lua}
|
||
require("ibl").setup()
|
||
require("bufferline").setup{}
|
||
require("lualine").setup({
|
||
icons_enabled = true,
|
||
theme = 'dracula',
|
||
})
|
||
'';
|
||
};
|
||
kitty = {
|
||
enable = true;
|
||
package = pkgs.kitty;
|
||
settings = {
|
||
scrollback_lines = 2000;
|
||
wheel_scroll_min_lines = 1;
|
||
window_padding_width = 4;
|
||
confirm_os_window_close = 0;
|
||
};
|
||
extraConfig = ''
|
||
tab_bar_style fade
|
||
tab_fade 1
|
||
active_tab_font_style bold
|
||
inactive_tab_font_style bold
|
||
'';
|
||
};
|
||
starship = {
|
||
enable = true;
|
||
package = pkgs.starship;
|
||
};
|
||
rofi = {
|
||
enable = true;
|
||
package = pkgs.rofi.override { plugins = [ pkgs.rofi-emoji ]; };
|
||
extraConfig = {
|
||
modi = "drun,emoji,filebrowser,run";
|
||
show-icons = true;
|
||
icon-theme = "Papirus";
|
||
location = 0;
|
||
font = "JetBrainsMono Nerd Font Mono 16";
|
||
drun-display-format = "{icon} {name}";
|
||
display-drun = " Apps ";
|
||
display-run = " Run ";
|
||
display-filebrowser = " File ";
|
||
display-emoji = " Emoji ";
|
||
hover-select = true;
|
||
me-select-entry = "MouseSecondary";
|
||
me-accept-entry = "MousePrimary";
|
||
dpi = 1;
|
||
};
|
||
theme = let inherit (config.lib.formats.rasi) mkLiteral; in {
|
||
"*" = {
|
||
bg = mkLiteral "#${config.stylix.base16Scheme.base00}";
|
||
bg-alt = mkLiteral "#${config.stylix.base16Scheme.base09}";
|
||
foreground = mkLiteral "#${config.stylix.base16Scheme.base01}";
|
||
selected = mkLiteral "#${config.stylix.base16Scheme.base08}";
|
||
active = mkLiteral "#${config.stylix.base16Scheme.base0B}";
|
||
text-selected = mkLiteral "#${config.stylix.base16Scheme.base00}";
|
||
text-color = mkLiteral "#${config.stylix.base16Scheme.base05}";
|
||
border-color = mkLiteral "#${config.stylix.base16Scheme.base0F}";
|
||
urgent = mkLiteral "#${config.stylix.base16Scheme.base0E}";
|
||
};
|
||
"window" = {
|
||
width = mkLiteral "50%";
|
||
transparency = "real";
|
||
orientation = mkLiteral "vertical";
|
||
cursor = mkLiteral "default";
|
||
spacing = mkLiteral "0px";
|
||
border = mkLiteral "2px";
|
||
border-color = "@border-color";
|
||
border-radius = mkLiteral "20px";
|
||
background-color = mkLiteral "@bg";
|
||
};
|
||
"mainbox" = {
|
||
padding = mkLiteral "15px";
|
||
enabled = true;
|
||
orientation = mkLiteral "vertical";
|
||
children = map mkLiteral [ "inputbar" "listbox" ];
|
||
background-color = mkLiteral "transparent";
|
||
};
|
||
"inputbar" = {
|
||
enabled = true;
|
||
padding = mkLiteral "10px 10px 200px 10px";
|
||
margin = mkLiteral "10px";
|
||
background-color = mkLiteral "transparent";
|
||
border-radius = "25px";
|
||
orientation = mkLiteral "horizontal";
|
||
children = map mkLiteral ["entry" "dummy" "mode-switcher" ];
|
||
background-image = mkLiteral "url('~/Pictures/Wallpapers/zaney-wallpaper.jpg', width)";
|
||
};
|
||
"entry" = {
|
||
enabled = true;
|
||
expand = false;
|
||
width = mkLiteral "20%";
|
||
padding = mkLiteral "10px";
|
||
border-radius = mkLiteral "12px";
|
||
background-color = mkLiteral "@selected";
|
||
text-color = mkLiteral "@text-selected";
|
||
cursor = mkLiteral "text";
|
||
placeholder = mkLiteral "🖥️ Search ";
|
||
placeholder-color = mkLiteral "inherit";
|
||
};
|
||
"listbox" = {
|
||
spacing = mkLiteral "10px";
|
||
padding = mkLiteral "10px";
|
||
background-color = mkLiteral "transparent";
|
||
orientation = mkLiteral "vertical";
|
||
children = map mkLiteral [ "message" "listview" ];
|
||
};
|
||
"listview" = {
|
||
enabled = true;
|
||
columns = 2;
|
||
lines = 6;
|
||
cycle = true;
|
||
dynamic = true;
|
||
scrollbar = false;
|
||
layout = mkLiteral "vertical";
|
||
reverse = false;
|
||
fixed-height = false;
|
||
fixed-columns = true;
|
||
spacing = mkLiteral "10px";
|
||
background-color = mkLiteral "transparent";
|
||
border = mkLiteral "0px";
|
||
};
|
||
"dummy" = {
|
||
expand = true;
|
||
background-color = mkLiteral "transparent";
|
||
};
|
||
"mode-switcher" = {
|
||
enabled = true;
|
||
spacing = mkLiteral "10px";
|
||
background-color = mkLiteral "transparent";
|
||
};
|
||
"button" = {
|
||
width = mkLiteral "5%";
|
||
padding = mkLiteral "12px";
|
||
border-radius = mkLiteral "12px";
|
||
background-color = mkLiteral "@text-selected";
|
||
text-color = mkLiteral "@text-color";
|
||
cursor = mkLiteral "pointer";
|
||
};
|
||
"button selected" = {
|
||
background-color = mkLiteral "@selected";
|
||
text-color = mkLiteral "@text-selected";
|
||
};
|
||
"scrollbar" = {
|
||
width = mkLiteral "4px";
|
||
border = 0;
|
||
handle-color = mkLiteral "@border-color";
|
||
handle-width = mkLiteral "8px";
|
||
padding = 0;
|
||
};
|
||
"element" = {
|
||
enabled = true;
|
||
spacing = mkLiteral "10px";
|
||
padding = mkLiteral "10px";
|
||
border-radius = mkLiteral "12px";
|
||
background-color = mkLiteral "transparent";
|
||
cursor = mkLiteral "pointer";
|
||
};
|
||
"element normal.normal" = {
|
||
background-color = mkLiteral "inherit";
|
||
text-color = mkLiteral "inherit";
|
||
};
|
||
"element normal.urgent" = {
|
||
background-color = mkLiteral "@urgent";
|
||
text-color = mkLiteral "@foreground";
|
||
};
|
||
"element normal.active" = {
|
||
background-color = mkLiteral "@active";
|
||
text-color = mkLiteral "@foreground";
|
||
};
|
||
"element selected.normal" = {
|
||
background-color = mkLiteral "@selected";
|
||
text-color = mkLiteral "@text-selected";
|
||
};
|
||
"element selected.urgent" = {
|
||
background-color = mkLiteral "@urgent";
|
||
text-color = mkLiteral "@text-selected";
|
||
};
|
||
"element selected.active" = {
|
||
background-color = mkLiteral "@urgent";
|
||
text-color = mkLiteral "@text-selected";
|
||
};
|
||
"element alternate.normal" = {
|
||
background-color = mkLiteral "transparent";
|
||
text-color = mkLiteral "inherit";
|
||
};
|
||
"element alternate.urgent" = {
|
||
background-color = mkLiteral "transparent";
|
||
text-color = mkLiteral "inherit";
|
||
};
|
||
"element alternate.active" = {
|
||
background-color = mkLiteral "transparent";
|
||
text-color = mkLiteral "inherit";
|
||
};
|
||
"element-icon" = {
|
||
background-color = mkLiteral "transparent";
|
||
text-color = mkLiteral "inherit";
|
||
size = mkLiteral "36px";
|
||
cursor = mkLiteral "inherit";
|
||
};
|
||
"element-text" = {
|
||
background-color = mkLiteral "transparent";
|
||
font = "JetBrainsMono Nerd Font Mono 14";
|
||
text-color = mkLiteral "inherit";
|
||
cursor = mkLiteral "inherit";
|
||
vertical-align = mkLiteral "0.5";
|
||
horizontal-align = mkLiteral "0.0";
|
||
};
|
||
"message" = {
|
||
background-color = mkLiteral "transparent";
|
||
border = mkLiteral "0px";
|
||
};
|
||
"textbox" = {
|
||
padding = mkLiteral "12px";
|
||
border-radius = mkLiteral "10px";
|
||
background-color = mkLiteral "@bg-alt";
|
||
text-color = mkLiteral "@bg";
|
||
vertical-align = mkLiteral "0.5";
|
||
horizontal-align = mkLiteral "0.0";
|
||
};
|
||
"error-message" = {
|
||
padding = mkLiteral "12px";
|
||
border-radius = mkLiteral "20px";
|
||
background-color = mkLiteral "@bg-alt";
|
||
text-color = mkLiteral "@bg";
|
||
};
|
||
};
|
||
};
|
||
bash = {
|
||
enable = true;
|
||
enableCompletion = true;
|
||
profileExtra = ''
|
||
#if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
|
||
# exec Hyprland
|
||
#fi
|
||
'';
|
||
initExtra = ''
|
||
neofetch
|
||
if [ -f $HOME/.bashrc-personal ]; then
|
||
source $HOME/.bashrc-personal
|
||
fi
|
||
'';
|
||
shellAliases = {
|
||
sv = "sudo nvim";
|
||
flake-rebuild = "nh os switch --hostname ${host} /home/${username}/zaneyos";
|
||
flake-update = "nh os switch --hostname ${host} --update /home/${username}/zaneyos";
|
||
gcCleanup = "nix-collect-garbage --delete-old && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot";
|
||
v = "nvim";
|
||
ls = "lsd";
|
||
ll = "lsd -l";
|
||
la = "lsd -a";
|
||
lal = "lsd -al";
|
||
".." = "cd ..";
|
||
neofetch="neofetch --ascii ~/.config/ascii-neofetch";
|
||
};
|
||
};
|
||
home-manager.enable = true;
|
||
hyprlock = {
|
||
enable = true;
|
||
settings = {
|
||
general = {
|
||
disable_loading_bar = true;
|
||
grace = 10;
|
||
hide_cursor = true;
|
||
no_fade_in = false;
|
||
};
|
||
background = [
|
||
{
|
||
path = "/home/${username}/Pictures/Wallpapers/zaney-wallpaper.jpg";
|
||
blur_passes = 3;
|
||
blur_size = 8;
|
||
}
|
||
];
|
||
image = [
|
||
{
|
||
path = "/home/${username}/.config/face.jpg";
|
||
size = 150;
|
||
border_size = 4;
|
||
border_color = "rgb(0C96F9)";
|
||
rounding = -1; # Negative means circle
|
||
position = "0, 200";
|
||
halign = "center";
|
||
valign = "center";
|
||
}
|
||
];
|
||
input-field = [
|
||
{
|
||
size = "200, 50";
|
||
position = "0, -80";
|
||
monitor = "";
|
||
dots_center = true;
|
||
fade_on_empty = false;
|
||
font_color = "rgb(CFE6F4)";
|
||
inner_color = "rgb(657DC2)";
|
||
outer_color = "rgb(0D0E15)";
|
||
outline_thickness = 5;
|
||
placeholder_text = "Password...";
|
||
shadow_passes = 2;
|
||
}
|
||
];
|
||
};
|
||
};
|
||
};
|
||
}
|