initial commit
This commit is contained in:
commit
1f9e5e17af
19 changed files with 1515 additions and 0 deletions
109
modules/home-manager/default.nix
Normal file
109
modules/home-manager/default.nix
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
# Home Manager needs a bit of information about you and the paths it should
|
||||
# manage.
|
||||
home.username = "zack";
|
||||
home.homeDirectory = "/home/zack";
|
||||
|
||||
imports = [
|
||||
inputs.nixvim.homeManagerModules.nixvim
|
||||
../rice/hyprland
|
||||
../rice/gtk.nix
|
||||
];
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = _: 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.
|
||||
#
|
||||
# You should not change this value, even if you update Home Manager. If you do
|
||||
# want to update the value, then make sure to first check the Home Manager
|
||||
# release notes.
|
||||
home.stateVersion = "23.11"; # Please read the comment before changing it.
|
||||
|
||||
# The home.packages option allows you to install Nix packages into your
|
||||
# environment.
|
||||
home.packages = [
|
||||
# # Adds the 'hello' command to your environment. It prints a friendly
|
||||
# # "Hello, world!" when run.
|
||||
# pkgs.hello
|
||||
|
||||
# # It is sometimes useful to fine-tune packages, for example, by applying
|
||||
# # overrides. You can do that directly here, just don't forget the
|
||||
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
|
||||
# # fonts?
|
||||
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
|
||||
|
||||
pkgs.discord
|
||||
pkgs.slack
|
||||
(pkgs.nerdfonts.override {fonts = ["Iosevka"];})
|
||||
pkgs.rustup
|
||||
pkgs.git
|
||||
pkgs.lazygit
|
||||
pkgs.spotify
|
||||
pkgs.neovide
|
||||
pkgs.wofi
|
||||
|
||||
# # You can also create simple shell scripts directly inside your
|
||||
# # configuration. For example, this adds a command 'my-hello' to your
|
||||
# # environment:
|
||||
# (pkgs.writeShellScriptBin "my-hello" ''
|
||||
# echo "Hello, ${config.home.username}!"
|
||||
# '')
|
||||
];
|
||||
|
||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||
# plain files is through 'home.file'.
|
||||
home.file = {
|
||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
||||
# # symlink to the Nix store copy.
|
||||
# ".screenrc".source = dotfiles/screenrc;
|
||||
|
||||
# # You can also set the file content immediately.
|
||||
# ".gradle/gradle.properties".text = ''
|
||||
# org.gradle.console=verbose
|
||||
# org.gradle.daemon.idletimeout=3600000
|
||||
# '';
|
||||
};
|
||||
|
||||
# Home Manager can also manage your environment variables through
|
||||
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
||||
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
||||
# either
|
||||
#
|
||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||
#
|
||||
# or
|
||||
#
|
||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
||||
#
|
||||
# or
|
||||
#
|
||||
# /etc/profiles/per-user/zack/etc/profile.d/hm-session-vars.sh
|
||||
#
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
font = {name = "Iosevka Nerd Font Mono";};
|
||||
theme = "Ayu Mirage";
|
||||
};
|
||||
|
||||
programs.nixvim = ./vim.nix;
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
}
|
||||
83
modules/home-manager/vim.nix
Normal file
83
modules/home-manager/vim.nix
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
{
|
||||
config = {
|
||||
enable = true;
|
||||
|
||||
plugins = {
|
||||
lualine.enable = true;
|
||||
telescope.enable = true;
|
||||
treesitter.enable = true;
|
||||
luasnip.enable = true;
|
||||
rustaceanvim.enable = true;
|
||||
comment-nvim.enable = true;
|
||||
lsp-format.enable = true;
|
||||
toggleterm.enable = true;
|
||||
which-key.enable = true;
|
||||
todo-comments.enable = true;
|
||||
};
|
||||
|
||||
plugins.neo-tree = {
|
||||
enable = true;
|
||||
enableGitStatus = true;
|
||||
};
|
||||
|
||||
colorschemes.rose-pine.enable = true;
|
||||
options = {
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
};
|
||||
globals.mapleader = " ";
|
||||
|
||||
plugins.bufferline = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
plugins.lsp = {
|
||||
enable = true;
|
||||
servers = {
|
||||
tsserver.enable = true;
|
||||
lua-ls.enable = true;
|
||||
rust-analyzer = {
|
||||
enable = true;
|
||||
installRustc = false;
|
||||
installCargo = false;
|
||||
};
|
||||
nil_ls.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
keymaps = [
|
||||
{
|
||||
action = "<cmd>Neotree<CR>";
|
||||
key = "<leader>fe";
|
||||
}
|
||||
{
|
||||
action = "<cmd>lua _lazygit_toggle()<CR>";
|
||||
key = "<leader>gg";
|
||||
}
|
||||
];
|
||||
|
||||
plugins.nvim-cmp = {
|
||||
enable = true;
|
||||
autoEnableSources = true;
|
||||
sources = [
|
||||
{name = "nvim_lsp";}
|
||||
{name = "path";}
|
||||
{name = "buffer";}
|
||||
];
|
||||
snippet = {expand = "luasnip";};
|
||||
mappingPresets = ["insert"];
|
||||
mapping = {
|
||||
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||
};
|
||||
};
|
||||
|
||||
extraConfigLua = ''
|
||||
local Terminal = require('toggleterm.terminal').Terminal
|
||||
local lazygit = Terminal:new({ cmd = "lazygit", hidden = true, direction = "float" })
|
||||
|
||||
function _lazygit_toggle()
|
||||
lazygit:toggle()
|
||||
end
|
||||
'';
|
||||
};
|
||||
}
|
||||
68
modules/rice/dunst.nix
Normal file
68
modules/rice/dunst.nix
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
pkgs,
|
||||
theme,
|
||||
...
|
||||
}: let
|
||||
inherit (theme) x;
|
||||
in {
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
package = pkgs.dunst.overrideAttrs (_: {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "sioodmy";
|
||||
repo = "dunst";
|
||||
rev = "6477864bd870dc74f9cf76bb539ef89051554525";
|
||||
sha256 = "FCoGrYipNOZRvee6Ks5PQB5y2IvN+ptCAfNuLXcD8Sc=";
|
||||
};
|
||||
});
|
||||
iconTheme = {
|
||||
package = pkgs.catppuccin-papirus-folders;
|
||||
name = "Papirus";
|
||||
};
|
||||
settings = with theme.colors; {
|
||||
global = {
|
||||
frame_color = "#${pink}95";
|
||||
separator_color = x pink;
|
||||
width = 220;
|
||||
height = 280;
|
||||
offset = "0x15";
|
||||
font = "Lexend 12";
|
||||
corner_radius = 10;
|
||||
origin = "top-center";
|
||||
notification_limit = 3;
|
||||
idle_threshold = 120;
|
||||
ignore_newline = "no";
|
||||
mouse_left_click = "close_current";
|
||||
mouse_right_click = "close_all";
|
||||
sticky_history = "yes";
|
||||
history_length = 20;
|
||||
show_age_threshold = 60;
|
||||
ellipsize = "middle";
|
||||
padding = 10;
|
||||
always_run_script = true;
|
||||
frame_width = 2;
|
||||
transparency = 10;
|
||||
progress_bar = true;
|
||||
progress_bar_frame_width = 0;
|
||||
highlight = x pink;
|
||||
};
|
||||
fullscreen_delay_everything.fullscreen = "delay";
|
||||
urgency_low = {
|
||||
background = "#${base}83";
|
||||
foreground = x text;
|
||||
timeout = 5;
|
||||
};
|
||||
urgency_normal = {
|
||||
background = "#${base}83";
|
||||
foreground = "#c6d0f5";
|
||||
timeout = 6;
|
||||
};
|
||||
urgency_critical = {
|
||||
background = "#${base}83";
|
||||
foreground = x text;
|
||||
frame_color = "#${red}80";
|
||||
timeout = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
87
modules/rice/gtk.nix
Normal file
87
modules/rice/gtk.nix
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
{pkgs, ...}: {
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "Catppuccin-Frappe-Compact-Pink-Dark";
|
||||
package = pkgs.catppuccin-gtk.override {
|
||||
accents = ["pink"];
|
||||
tweaks = ["rimless"];
|
||||
size = "compact";
|
||||
variant = "frappe";
|
||||
};
|
||||
};
|
||||
|
||||
iconTheme = {
|
||||
package = pkgs.catppuccin-papirus-folders;
|
||||
name = "Papirus";
|
||||
};
|
||||
font = {
|
||||
name = "Lexend";
|
||||
size = 11;
|
||||
};
|
||||
gtk3.extraConfig = {
|
||||
gtk-xft-antialias = 1;
|
||||
gtk-xft-hinting = 1;
|
||||
gtk-xft-hintstyle = "hintslight";
|
||||
gtk-xft-rgba = "rgb";
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||
gtk2.extraConfig = ''
|
||||
gtk-xft-antialias=1
|
||||
gtk-xft-hinting=1
|
||||
gtk-xft-hintstyle="hintslight"
|
||||
gtk-xft-rgba="rgb"
|
||||
'';
|
||||
};
|
||||
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
qt5.qttools
|
||||
qt6Packages.qtstyleplugin-kvantum
|
||||
libsForQt5.qtstyleplugin-kvantum
|
||||
libsForQt5.qt5ct
|
||||
breeze-icons
|
||||
];
|
||||
pointerCursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Classic";
|
||||
size = 16;
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
};
|
||||
|
||||
sessionVariables = {
|
||||
XCURSOR_SIZE = "16";
|
||||
GTK_USE_PORTAL = "1";
|
||||
};
|
||||
};
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme = "qtct";
|
||||
style = {
|
||||
name = "Catppuccin-Frappe-Dark";
|
||||
package = pkgs.catppuccin-kde.override {
|
||||
flavour = ["frappe"];
|
||||
accents = ["pink"];
|
||||
};
|
||||
};
|
||||
};
|
||||
xdg.configFile = {
|
||||
"Kvantum/catppuccin/catppuccin.kvconfig".source = builtins.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/catppuccin/Kvantum/main/src/Catppuccin-Frappe-Pink/Catppuccin-Frappe-Pink.kvconfig";
|
||||
sha256 = "0pl936nchif2zsgzy4asrlc3gvv4fv2ln2myrqx13r6xra1vkcqs";
|
||||
};
|
||||
"Kvantum/catppuccin/catppuccin.svg".source = builtins.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/catppuccin/Kvantum/main/src/Catppuccin-Frappe-Pink/Catppuccin-Frappe-Pink.svg";
|
||||
sha256 = "1b92j0gb65l2pvrf90inskr507a1kwin1zy0grwcsdyjmrm5yjrv";
|
||||
};
|
||||
"Kvantum/kvantum.kvconfig".text = ''
|
||||
[General]
|
||||
theme=catppuccin
|
||||
|
||||
[Applications]
|
||||
catppuccin=qt5ct, org.qbittorrent.qBittorrent, hyprland-share-picker
|
||||
'';
|
||||
};
|
||||
}
|
||||
63
modules/rice/hyprland/binds.nix
Normal file
63
modules/rice/hyprland/binds.nix
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
mod = "SUPER";
|
||||
modshift = "${mod}SHIFT";
|
||||
|
||||
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10} (stolen from fufie)
|
||||
workspaces = builtins.concatLists (builtins.genList (
|
||||
x: let
|
||||
ws = let
|
||||
c = (x + 1) / 10;
|
||||
in
|
||||
builtins.toString (x + 1 - (c * 10));
|
||||
in [
|
||||
"${mod}, ${ws}, workspace, ${toString (x + 1)}"
|
||||
"${mod} SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
|
||||
]
|
||||
)
|
||||
10);
|
||||
in {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
bind =
|
||||
[
|
||||
''${mod},RETURN,exec,kitty''
|
||||
|
||||
"${mod},R,exec,wofi"
|
||||
"${mod},Q,killactive"
|
||||
"${mod},P,pseudo"
|
||||
|
||||
"${mod},H,movefocus,l"
|
||||
"${mod},L,movefocus,r"
|
||||
"${mod},K,movefocus,u"
|
||||
"${mod},J,movefocus,d"
|
||||
|
||||
"${mod},T,togglegroup," # group focused window
|
||||
"${modshift},G,changegroupactive," # switch within the active group
|
||||
"${mod},V,togglefloating," # toggle floating for the focused window
|
||||
"${mod},F,fullscreen," # fullscreen focused window
|
||||
|
||||
# workspace controls
|
||||
"${modshift},right,movetoworkspace,+1" # move focused window to the next ws
|
||||
"${modshift},left,movetoworkspace,-1" # move focused window to the previous ws
|
||||
"${mod},mouse_down,workspace,e+1" # move to the next ws
|
||||
"${mod},mouse_up,workspace,e-1" # move to the previous ws
|
||||
|
||||
"${mod},Print,exec, pauseshot"
|
||||
",Print,exec, grim - | wl-copy"
|
||||
"${modshift},O,exec,wl-ocr"
|
||||
|
||||
"${mod},Period,exec, tofi-emoji"
|
||||
|
||||
"${modshift},L,exec,swaylock --grace 0" # lock screen
|
||||
]
|
||||
++ workspaces;
|
||||
|
||||
bindm = [
|
||||
"${mod},mouse:272,movewindow"
|
||||
"${mod},mouse:273,resizewindow"
|
||||
];
|
||||
};
|
||||
}
|
||||
56
modules/rice/hyprland/config.nix
Normal file
56
modules/rice/hyprland/config.nix
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
# home.nix
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
exec-once = [
|
||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
];
|
||||
|
||||
general = {
|
||||
# gaps
|
||||
gaps_in = 6;
|
||||
gaps_out = 11;
|
||||
|
||||
# border thiccness
|
||||
border_size = 2;
|
||||
|
||||
|
||||
# whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse)
|
||||
apply_sens_to_raw = 0;
|
||||
};
|
||||
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
|
||||
accel_profile = "flat";
|
||||
force_no_accel = true;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
# fancy corners
|
||||
rounding = 7;
|
||||
# blur
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 3;
|
||||
ignore_opacity = false;
|
||||
new_optimizations = 1;
|
||||
xray = true;
|
||||
contrast = 0.7;
|
||||
brightness = 0.8;
|
||||
};
|
||||
|
||||
# shadow config
|
||||
drop_shadow = "no";
|
||||
shadow_range = 20;
|
||||
shadow_render_power = 5;
|
||||
"col.shadow" = "rgba(292c3cee)";
|
||||
};
|
||||
|
||||
xwayland = {
|
||||
force_zero_scaling = true;
|
||||
};
|
||||
|
||||
monitor = "DP-1,2560x1440@240,0x0,1";
|
||||
};
|
||||
}
|
||||
19
modules/rice/hyprland/default.nix
Normal file
19
modules/rice/hyprland/default.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports = [./config.nix ./binds.nix];
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.system}.default;
|
||||
systemd = {
|
||||
variables = ["--all"];
|
||||
extraCommands = [
|
||||
"systemctl --user stop graphical-session.target"
|
||||
"systemctl --user start hyprland-session.target"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
43
modules/rice/hyprland/rules.nix
Normal file
43
modules/rice/hyprland/rules.nix
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{...}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
layerrule = [
|
||||
"blur, ^(gtk-layer-shell)$"
|
||||
"blur, ^(launcher)$"
|
||||
"ignorezero, ^(gtk-layer-shell)$"
|
||||
"ignorezero, ^(launcher)$"
|
||||
"blur, notifications"
|
||||
"ignorezero, notifications"
|
||||
"blur, bar"
|
||||
"ignorezero, bar"
|
||||
"ignorezero, ^(gtk-layer-shell|anyrun)$"
|
||||
"blur, ^(gtk-layer-shell|anyrun)$"
|
||||
"noanim, launcher"
|
||||
"noanim, bar"
|
||||
];
|
||||
windowrulev2 = [
|
||||
# only allow shadows for floating windows
|
||||
"noshadow, floating:0"
|
||||
"tile, title:Spotify"
|
||||
|
||||
"idleinhibit focus, class:^(mpv)$"
|
||||
"idleinhibit focus,class:foot"
|
||||
"idleinhibit fullscreen, class:^(firefox)$"
|
||||
|
||||
"float, title:^(Picture-in-Picture)$"
|
||||
"pin, title:^(Picture-in-Picture)$"
|
||||
|
||||
"float,class:udiskie"
|
||||
|
||||
"workspace special silent,class:^(pavucontrol)$"
|
||||
|
||||
"float, class:^(imv)$"
|
||||
|
||||
# throw sharing indicators away
|
||||
"workspace special silent, title:^(Firefox — Sharing Indicator)$"
|
||||
"workspace special silent, title:^(.*is sharing (your screen|a window)\.)$"
|
||||
|
||||
"workspace 4, title:^(.*(Disc|WebC)ord.*)$"
|
||||
"workspace 2, class:^(firefox)$"
|
||||
];
|
||||
};
|
||||
}
|
||||
3
modules/shell/default.nix
Normal file
3
modules/shell/default.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
imports = [ ./zsh/default.nix ];
|
||||
}
|
||||
43
modules/shell/zsh/aliases.nix
Normal file
43
modules/shell/zsh/aliases.nix
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
with pkgs; {
|
||||
ytmp3 = ''
|
||||
${getExe yt-dlp} -x --continue --add-metadata --embed-thumbnail --audio-format mp3 --audio-quality 0 --metadata-from-title="%(artist)s - %(title)s" --prefer-ffmpeg -o "%(title)s.%(ext)s"'';
|
||||
cat = "${getExe bat} --style=plain";
|
||||
vpn = "mullvad";
|
||||
uuid = "cat /proc/sys/kernel/random/uuid";
|
||||
grep = getExe ripgrep;
|
||||
fzf = getExe skim;
|
||||
untar = "tar -xvf";
|
||||
untargz = "tar -xzf";
|
||||
MANPAGER = "sh -c 'col -bx | bat -l man -p'";
|
||||
du = getExe du-dust;
|
||||
ps = getExe procs;
|
||||
m = "mkdir -p";
|
||||
fcd = "cd $(find -type d | fzf)";
|
||||
l = "ls -lF --time-style=long-iso --icons";
|
||||
sc = "sudo systemctl";
|
||||
scu = "systemctl --user ";
|
||||
la = "${getExe eza} -lah --tree";
|
||||
ls = "${getExe eza} -h --git --icons --color=auto --group-directories-first -s extension";
|
||||
tree = "${getExe eza} --tree --icons --tree";
|
||||
kys = "shutdown now";
|
||||
gpl = "curl https://www.gnu.org/licenses/gpl-3.0.txt -o LICENSE";
|
||||
agpl = "curl https://www.gnu.org/licenses/agpl-3.0.txt -o LICENSE";
|
||||
g = "git";
|
||||
n = "nix";
|
||||
mnt = "udisksctl mount -b";
|
||||
umnt = "udisksctl unmount -b";
|
||||
burn = "pkill -9";
|
||||
diff = "diff --color=auto";
|
||||
".." = "cd ..";
|
||||
"..." = "cd ../../";
|
||||
"...." = "cd ../../../";
|
||||
"....." = "cd ../../../../";
|
||||
"......" = "cd ../../../../../";
|
||||
}
|
||||
45
modules/shell/zsh/default.nix
Normal file
45
modules/shell/zsh/default.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
home.sessionVariables.STARSHIP_CACHE = "${config.xdg.cacheHome}/starship";
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableAutosuggestions = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
sessionVariables = {
|
||||
LC_ALL = "en_US.UTF-8";
|
||||
ZSH_AUTOSUGGEST_USE_ASYNC = "true";
|
||||
SSH_AUTH_SOCK = "/run/user/1000/keyring/ssh";
|
||||
};
|
||||
history = {
|
||||
save = 2137;
|
||||
size = 2137;
|
||||
expireDuplicatesFirst = true;
|
||||
ignoreDups = true;
|
||||
ignoreSpace = true;
|
||||
};
|
||||
|
||||
dirHashes = {
|
||||
music = "$HOME/Music";
|
||||
media = "/run/media/$USER";
|
||||
};
|
||||
|
||||
shellAliases = import ./aliases.nix {inherit pkgs lib config;};
|
||||
plugins = [
|
||||
{
|
||||
name = "zsh-nix-shell";
|
||||
file = "nix-shell.plugin.zsh";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "chisui";
|
||||
repo = "zsh-nix-shell";
|
||||
rev = "v0.7.0";
|
||||
sha256 = "149zh2rm59blr2q458a5irkfh82y3dwdich60s9670kl3cl5h2m1";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
64
modules/shell/zsh/tools.nix
Normal file
64
modules/shell/zsh/tools.nix
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
{pkgs, ...}: {
|
||||
services = {
|
||||
udiskie.enable = true;
|
||||
gpg-agent = {
|
||||
enable = true;
|
||||
pinentryFlavor = "gnome3";
|
||||
enableSshSupport = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
gpg.enable = true;
|
||||
man.enable = true;
|
||||
eza.enable = true;
|
||||
dircolors = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
skim = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
defaultCommand = "rg --files --hidden";
|
||||
changeDirWidgetOptions = [
|
||||
"--preview 'eza --icons --git --color always -T -L 3 {} | head -200'"
|
||||
"--exact"
|
||||
];
|
||||
};
|
||||
direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
tealdeer = {
|
||||
enable = true;
|
||||
settings = {
|
||||
display = {
|
||||
compact = false;
|
||||
use_pager = true;
|
||||
};
|
||||
updates = {
|
||||
auto_update = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
pager = "less -FR";
|
||||
theme = "catppuccin-frappe";
|
||||
};
|
||||
themes = {
|
||||
catppuccin-mocha = {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "bat";
|
||||
rev = "ba4d16880d63e656acced2b7d4e034e4a93f74b1";
|
||||
sha256 = "6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw=";
|
||||
};
|
||||
file = "Catppuccin-frappe.tmTheme";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue