liminalOS/home.nix

364 lines
7.9 KiB
Nix
Raw Normal View History

2024-07-11 03:56:19 -07:00
{ config, pkgs, ... }:
{
home.username = "youwen";
home.homeDirectory = "/home/youwen";
# link the configuration file in current directory to the specified location in home directory
# home.file.".config/i3/wallpaper.jpg".source = ./wallpaper.jpg;
# link all files in `./scripts` to `~/.config/i3/scripts`
# home.file.".config/i3/scripts" = {
# source = ./scripts;
# recursive = true; # link recursively
# executable = true; # make all files executable
# };
# encode the file content in nix configuration file directly
# home.file.".xxx".text = ''
# xxx
# '';
home.file.".config/neofetch/config.conf".source = ./config/neofetch.conf;
2024-07-31 18:57:17 -07:00
home.file.".wallpapers" = {
source = ./wallpapers;
recursive = true;
};
2024-07-11 03:56:19 -07:00
# Packages that should be installed to the user profile.
home.packages = with pkgs; [
neofetch
# archives
zip
xz
unzip
p7zip
# utils
nurl # helps fetch git data for nixpkgs
2024-07-11 03:56:19 -07:00
# nix related
#
# it provides the command `nom` works just like `nix`
# with more details log output
nix-output-monitor
# system tools
pciutils # lspci
usbutils # lsusb
# desktop utils
2024-07-11 21:45:18 -07:00
wl-clipboard
2024-07-11 22:06:02 -07:00
grim
slurp
swappy
pavucontrol
swww
waypaper
2024-07-11 03:56:19 -07:00
# desktop apps
dolphin
bitwarden-desktop
thunderbird
spotify
2024-07-11 03:56:19 -07:00
vesktop
signal-desktop
2024-07-31 16:55:55 -07:00
modrinth-app
2024-08-01 02:40:17 -07:00
lutris
2024-08-01 03:23:08 -07:00
wine
2024-07-11 03:56:19 -07:00
# dev tools
2024-07-11 03:56:19 -07:00
nodePackages_latest.pnpm
rustfmt
rust-analyzer
# desktop ricing
2024-07-11 16:57:24 -07:00
bibata-cursors
2024-07-11 20:01:04 -07:00
libsForQt5.qtstyleplugin-kvantum
libsForQt5.qt5ct
2024-07-11 21:56:03 -07:00
papirus-icon-theme
libsForQt5.qt5ct
2024-07-11 03:56:19 -07:00
];
2024-07-11 17:25:22 -07:00
services.dunst = {
enable = true;
catppuccin.enable = true;
2024-07-11 23:26:19 -07:00
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
size = "32x32";
};
2024-07-11 17:25:22 -07:00
};
services.easyeffects.enable = true;
services.easyeffects.package = pkgs.easyeffects;
2024-07-12 00:27:08 -07:00
2024-07-11 17:25:22 -07:00
programs.fzf = {
enable = true;
catppuccin.enable = true;
};
programs.wlogout.enable = true;
wayland.windowManager.hyprland = import ./modules/desktop/hyprland.nix;
2024-07-11 03:56:19 -07:00
# basic configuration of git, please change to your own
programs.git = {
enable = true;
userName = "Youwen Wu";
userEmail = "youwenw@gmail.com";
delta.enable = true;
extraConfig = {
init.defaultBranch = "main";
2024-07-11 22:30:59 -07:00
commit.gpgsign = "true";
user.signingkey = "8F5E6C1AF90976CA7102917A865658ED1FE61EC3";
2024-07-11 03:56:19 -07:00
};
};
programs.lazygit = {
enable = true;
catppuccin.enable = true;
catppuccin.flavor = "macchiato";
settings = {
git.paging = {
colorArg = "always";
pager = "delta --dark --paging=never";
};
};
};
2024-07-11 03:56:19 -07:00
programs.bat.enable = true;
programs.bat.catppuccin = {
enable = true;
flavor = "macchiato";
};
programs.ripgrep.enable = true;
2024-07-11 03:56:19 -07:00
programs.kitty = {
enable = true;
theme = "Tokyo Night";
font.name = "CaskaydiaCove Nerd Font";
settings = {
font_size = 12;
window_padding_width = "8 8 0";
confirm_os_window_close = -1;
shell_integration = "enabled";
2024-07-12 01:12:29 -07:00
enable_audio_bell = "no";
background_opacity = "0.8";
2024-07-11 03:56:19 -07:00
};
};
2024-07-11 16:57:24 -07:00
programs.readline = {
enable = true;
extraConfig = "set editing-mode vi";
};
2024-07-11 20:01:04 -07:00
gtk = {
enable = true;
catppuccin.enable = true;
cursorTheme = {
name = "Bibata-Modern-Ice";
2024-07-11 22:26:06 -07:00
size = 26;
2024-07-11 20:01:04 -07:00
};
2024-07-21 19:02:10 -07:00
iconTheme = { name = "Papirus-Dark"; };
2024-07-11 20:01:04 -07:00
};
qt = {
enable = true;
2024-07-11 21:15:44 -07:00
platformTheme.name = "qtct";
2024-07-11 20:01:04 -07:00
style.name = "kvantum";
};
xdg.configFile = {
"Kvantum/kvantum.kvconfig".text = ''
[General]
theme=GraphiteNordDark
'';
2024-07-21 19:02:10 -07:00
"Kvantum/GraphiteNord".source =
"${pkgs.graphite-kde-theme}/share/Kvantum/GraphiteNord";
2024-07-11 20:01:04 -07:00
};
2024-07-30 15:38:22 -07:00
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
theme = "gruvbox-dark";
};
programs.waybar = import ./modules/desktop/waybar/waybar.nix;
2024-07-11 03:56:19 -07:00
programs.zoxide = {
enable = true;
2024-07-30 04:12:33 -07:00
# enableZshIntegration = true;
enableFishIntegration = true;
2024-07-30 20:48:07 -07:00
enableNushellIntegration = true;
2024-07-11 03:56:19 -07:00
};
2024-07-11 23:24:42 -07:00
programs.gh = {
enable = true;
extensions = [ pkgs.github-copilot-cli ];
};
programs.oh-my-posh = {
enable = true;
2024-07-30 04:12:33 -07:00
# enableZshIntegration = true;
enableFishIntegration = true;
2024-07-11 23:20:42 -07:00
enableBashIntegration = true;
2024-07-30 22:40:17 -07:00
useTheme = "gruvbox";
};
2024-07-11 03:56:19 -07:00
programs.zsh = {
2024-07-30 04:12:33 -07:00
enable = false;
2024-07-11 03:56:19 -07:00
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
ls = "eza -l --icons=auto";
update = "sudo nixos-rebuild switch";
};
defaultKeymap = "viins";
# zimfw = {
# enable = true;
# disableVersionCheck = true;
# degit = true;
# zmodules = [
# "environment"
# "git"
# "input"
# "termtitle"
# "utility"
# "exa"
# "fzf"
# "magic-enter"
# ];
# };
2024-07-11 03:56:19 -07:00
};
2024-07-30 04:12:33 -07:00
programs.fish = {
enable = true;
2024-07-30 21:32:47 -07:00
catppuccin.enable = true;
catppuccin.flavor = "mocha";
2024-07-30 04:12:33 -07:00
shellAliases = {
rebuild = "sudo nixos-rebuild switch";
ls = "eza -l --icons=auto";
};
2024-07-31 18:08:25 -07:00
functions = {
update-nixos = {
description =
"Update the system flake and attempt to build and switch to the new configuration.";
body = ''
2024-08-01 14:54:21 -07:00
cd /etc/nixos
nix flake update
2024-07-31 18:08:25 -07:00
sudo nixos-rebuild switch
'';
};
};
2024-07-30 04:12:33 -07:00
interactiveShellInit = ''
fish_vi_key_bindings
set -g fish_greeting
'';
plugins = [
{
name = "autopair";
src = pkgs.fetchFromGitHub {
owner = "jorgebucaran";
repo = "autopair.fish";
rev = "4d1752ff5b39819ab58d7337c69220342e9de0e2";
hash = "sha256-qt3t1iKRRNuiLWiVoiAYOu+9E7jsyECyIqZJ/oRIT1A=";
};
}
{
name = "fzf";
src = pkgs.fetchFromGitHub {
owner = "PatrickF1";
repo = "fzf.fish";
rev = "8920367cf85eee5218cc25a11e209d46e2591e7a";
hash = "sha256-T8KYLA/r/gOKvAivKRoeqIwE2pINlxFQtZJHpOy9GMM=";
};
}
{
name = "sponge";
src = pkgs.fetchFromGitHub {
owner = "meaningful-ooo";
repo = "sponge";
rev = "384299545104d5256648cee9d8b117aaa9a6d7be";
hash = "sha256-MdcZUDRtNJdiyo2l9o5ma7nAX84xEJbGFhAVhK+Zm1w=";
};
}
{
name = "done";
src = pkgs.fetchFromGitHub {
owner = "franciscolourenco";
repo = "done";
rev = "eb32ade85c0f2c68cbfcff3036756bbf27a4f366";
hash = "sha256-DMIRKRAVOn7YEnuAtz4hIxrU93ULxNoQhW6juxCoh4o=";
};
}
];
};
2024-07-30 20:48:07 -07:00
programs.nushell = {
enable = true;
configFile.text = ''
$env.config = {
edit_mode: vi,
show_banner: false
}
'';
};
programs.fd.enable = true;
programs.btop = {
enable = true;
settings = {
color_theme = "tokyo-night";
vim_keys = true;
theme_background = false;
};
};
programs.eza = {
enable = true;
enableFishIntegration = true;
enableBashIntegration = true;
2024-07-30 04:12:33 -07:00
};
programs.bash.enable = true;
2024-07-11 03:56:19 -07:00
programs.librewolf = {
enable = true;
settings = {
"webgl.disabled" = false;
"privacy.resistFingerprinting" = false;
"privacy.clearOnShutdown.history" = false;
"privacy.clearOnShutdown.cookies" = false;
"network.cookie.lifetimePolicy" = 0;
};
};
programs.neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
};
# This value determines the home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new home Manager release introduces backwards
# incompatible changes.
home.stateVersion = "24.05";
#
# You can update home Manager without changing this value. See
# the home Manager release notes for a list of state version
# changes in each release.
# Let home Manager install and manage itself.
programs.home-manager.enable = true;
}