mirror of
https://gitlab.com/Zaney/zaneyos.git
synced 2024-11-22 22:53:07 +01:00
350 lines
9.2 KiB
Nix
350 lines
9.2 KiB
Nix
{
|
|
pkgs,
|
|
inputs,
|
|
username,
|
|
host,
|
|
lib,
|
|
...
|
|
}:
|
|
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.".emoji".source = ../../config/emoji;
|
|
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" ];
|
|
};
|
|
};
|
|
|
|
# Theme QT -> GTK
|
|
qt = {
|
|
enable = true;
|
|
platformTheme = "gtk";
|
|
style = {
|
|
name = "adwaita-dark";
|
|
package = pkgs.adwaita-qt;
|
|
};
|
|
};
|
|
|
|
# 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;
|
|
};
|
|
wofi = {
|
|
enable = true;
|
|
settings = {
|
|
allow_images = true;
|
|
prompt = "Run Programs...";
|
|
width = "35%";
|
|
hide_scroll = true;
|
|
term = "kitty";
|
|
show = "drun";
|
|
};
|
|
};
|
|
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(${lib.stylix.colors.base08})";
|
|
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(${lib.stylix.colors.base08})";
|
|
inner_color = "rgb(${lib.stylix.colors.base01})";
|
|
outer_color = "rgb(${lib.stylix.colors.base00})";
|
|
outline_thickness = 5;
|
|
placeholder_text = "Password...";
|
|
shadow_passes = 2;
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|