major restructuring for using snowfall

This commit is contained in:
2024-02-01 12:42:15 +01:00
parent d8e53f1f78
commit 67d23bcd9e
87 changed files with 24 additions and 164 deletions

View File

@ -0,0 +1,8 @@
import = [
"~/.config/alacritty/theme/themes/smoooooth.toml"
]
[[keyboard.bindings]]
chars = "fzf-z \r"
key = "Z"
mods = "Control"

View File

@ -0,0 +1,18 @@
{ config, lib, pkgs, inputs, ... }:
with lib;
let cfg = config.modules.alacritty;
in {
options.modules.alacritty = { enable = mkOption { default = false; }; };
config = mkIf cfg.enable {
# Does not work on non-nixos due to opengl
# home.packages = with pkgs; [ alacritty ];
home.file = {
".config/alacritty/theme".source = "${inputs.alacritty-theme}";
".config/alacritty/alacritty.toml".source = ./alacritty.toml;
};
};
}

View File

@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.modules.shell.direnv;
in {
options.modules.shell.direnv = { enable = mkOption { default = false; }; };
config = mkIf cfg.enable {
programs.direnv = {
enable = true;
enableZshIntegration = true;
};
};
}

View File

@ -0,0 +1,24 @@
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.modules.i3;
in {
options.modules.i3 = { enable = mkOption { default = false; }; };
config = mkIf cfg.enable {
xsession.windowManager.i3 = { enable = true; };
programs = { i3status-rust = { enable = true; }; };
home.file = {
".config/i3" = {
source = ../../i3/i3;
recursive = true;
};
".config/i3status-rust/config.toml".source =
../../i3/i3status-rust/config.toml;
};
home.file = { ".profile".source = ../../i3/.profile; };
};
}

View File

@ -0,0 +1,61 @@
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.modules.neovim;
in {
options.modules.neovim = { enable = mkOption { default = false; }; };
config = mkIf cfg.enable {
programs = {
neovim = let
toLua = str: ''
lua << EOF
${str}
EOF
'';
in {
# https://www.youtube.com/watch?v=YZAnJ0rwREA
enable = true;
viAlias = true;
vimAlias = true;
# vimdiffAlias = true;
plugins = with pkgs.vimPlugins; [
{
plugin = dracula-nvim;
config = "colorscheme dracula";
}
{
plugin = comment-nvim;
config = toLua ''require("Comment").setup()'';
}
# nix file support
vim-nix
# Syntax highlighting
(nvim-treesitter.withPlugins (p: [
p.tree-sitter-nix
p.tree-sitter-vim
p.tree-sitter-bash
p.tree-sitter-lua
p.tree-sitter-python
p.tree-sitter-json
p.tree-sitter-cpp
p.tree-sitter-rust
]))
];
extraConfig = ''
set clipboard=unnamedplus
'';
extraLuaConfig = ''
vim.o.termguicolors = true
'';
};
};
};
}

View File

@ -0,0 +1,16 @@
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.modules.rofi;
in {
options.modules.rofi = { enable = mkOption { default = false; }; };
config = mkIf cfg.enable {
programs.rofi = { enable = true; };
home.file = {
".config/rofi/config.rasi".source = ../../i3/rofi/config.rasi;
};
};
}

View File

@ -0,0 +1,24 @@
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.modules.topgrade;
in {
options.modules.topgrade = { enable = mkOption { default = false; }; };
config = mkIf cfg.enable {
programs.topgrade = {
enable = true;
settings = {
misc.no_self_update = true;
git = {
# Additional git repositories to pull
repos = [ "~/.dotfiles" ];
pull_only_repos = [ "~/dev/*" ];
};
};
};
};
}

View File

@ -0,0 +1,47 @@
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.modules.shell.zsh;
in {
options.modules.shell.zsh = { enable = mkOption { default = false; }; };
config = mkIf cfg.enable {
home.file = { ".config/starship.toml".source = ./starship.toml; };
home.packages = with pkgs; [ starship ];
programs.starship = {
enable = true;
enableZshIntegration = true;
};
programs.zsh = {
enable = true;
initExtra = builtins.readFile ./key-bindings.zsh
+ builtins.readFile ./functions.zsh
+ builtins.readFile ./last-working-dir.zsh
+ builtins.readFile ./dir-navigation.zsh;
zplug = {
enable = true;
plugins = [
# list of plugins: https://github.com/unixorn/awesome-zsh-plugins
{ name = "agkozak/zsh-z"; }
{
name = "zsh-users/zsh-completions";
}
# make it behave like fish
{ name = "zsh-users/zsh-autosuggestions"; }
{ name = "zsh-users/zsh-history-substring-search"; }
{
name = "zsh-users/zsh-syntax-highlighting";
} # must be last sourced plugin
];
};
};
};
}

View File

@ -0,0 +1,17 @@
#!/usr/bin/env zsh
# Use Alt+Up to go one directory upwards
function go_dir_up() {
cd .. || return 1
}
function zle_go_dir_up() {
zle .kill-buffer
go_dir_up
zle .accept-line
}
zle -N zle_go_dir_up
# Alt+Up
bindkey "^[[1;3A" zle_go_dir_up

View File

@ -0,0 +1,12 @@
#!/usr/bin/env zsh
# My custom zsh functions
fzf-z() {
dir=$(z | fzf --tiebreak=index --tac | sed -E 's/^[0-9]+[[:space:]]+//')
cd $dir
}
mkcd ()
{
mkdir -p -- "$1" && cd -P -- "$1"
}

View File

@ -0,0 +1,131 @@
#!/usr/bin/env zsh
# Based on the oh-my-zsh default keybinding config: https://github.com/ohmyzsh/ohmyzsh/blob/master/lib/key-bindings.zsh
# Make sure that the terminal is in application mode when zle is active, since
# only then values from $terminfo are valid
if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
function zle-line-init() {
echoti smkx
}
function zle-line-finish() {
echoti rmkx
}
zle -N zle-line-init
zle -N zle-line-finish
fi
# Use emacs key bindings
bindkey -e
# [PageUp] - Up a line of history
if [[ -n "${terminfo[kpp]}" ]]; then
bindkey -M emacs "${terminfo[kpp]}" up-line-or-history
bindkey -M viins "${terminfo[kpp]}" up-line-or-history
bindkey -M vicmd "${terminfo[kpp]}" up-line-or-history
fi
# [PageDown] - Down a line of history
if [[ -n "${terminfo[knp]}" ]]; then
bindkey -M emacs "${terminfo[knp]}" down-line-or-history
bindkey -M viins "${terminfo[knp]}" down-line-or-history
bindkey -M vicmd "${terminfo[knp]}" down-line-or-history
fi
# Start typing + [Up-Arrow] - fuzzy find history forward
if [[ -n "${terminfo[kcuu1]}" ]]; then
bindkey -M emacs "${terminfo[kcuu1]}" history-substring-search-up
bindkey -M viins "${terminfo[kcuu1]}" history-substring-search-up
bindkey -M vicmd "${terminfo[kcuu1]}" history-substring-search-up
fi
# Start typing + [Down-Arrow] - fuzzy find history backward
if [[ -n "${terminfo[kcud1]}" ]]; then
bindkey -M emacs "${terminfo[kcud1]}" history-substring-search-down
bindkey -M viins "${terminfo[kcud1]}" history-substring-search-down
bindkey -M vicmd "${terminfo[kcud1]}" history-substring-search-down
fi
# [Home] - Go to beginning of line
if [[ -n "${terminfo[khome]}" ]]; then
bindkey -M emacs "${terminfo[khome]}" beginning-of-line
bindkey -M viins "${terminfo[khome]}" beginning-of-line
bindkey -M vicmd "${terminfo[khome]}" beginning-of-line
fi
# [End] - Go to end of line
if [[ -n "${terminfo[kend]}" ]]; then
bindkey -M emacs "${terminfo[kend]}" end-of-line
bindkey -M viins "${terminfo[kend]}" end-of-line
bindkey -M vicmd "${terminfo[kend]}" end-of-line
fi
# [Shift-Tab] - move through the completion menu backwards
if [[ -n "${terminfo[kcbt]}" ]]; then
bindkey -M emacs "${terminfo[kcbt]}" reverse-menu-complete
bindkey -M viins "${terminfo[kcbt]}" reverse-menu-complete
bindkey -M vicmd "${terminfo[kcbt]}" reverse-menu-complete
fi
# [Backspace] - delete backward
bindkey -M emacs '^?' backward-delete-char
bindkey -M viins '^?' backward-delete-char
bindkey -M vicmd '^?' backward-delete-char
# [Delete] - delete forward
if [[ -n "${terminfo[kdch1]}" ]]; then
bindkey -M emacs "${terminfo[kdch1]}" delete-char
bindkey -M viins "${terminfo[kdch1]}" delete-char
bindkey -M vicmd "${terminfo[kdch1]}" delete-char
else
bindkey -M emacs "^[[3~" delete-char
bindkey -M viins "^[[3~" delete-char
bindkey -M vicmd "^[[3~" delete-char
bindkey -M emacs "^[3;5~" delete-char
bindkey -M viins "^[3;5~" delete-char
bindkey -M vicmd "^[3;5~" delete-char
fi
# [Ctrl-Delete] - delete whole forward-word
bindkey -M emacs '^[[3;5~' kill-word
bindkey -M viins '^[[3;5~' kill-word
bindkey -M vicmd '^[[3;5~' kill-word
# [Ctrl-RightArrow] - move forward one word
bindkey -M emacs '^[[1;5C' forward-word
bindkey -M viins '^[[1;5C' forward-word
bindkey -M vicmd '^[[1;5C' forward-word
# [Ctrl-LeftArrow] - move backward one word
bindkey -M emacs '^[[1;5D' backward-word
bindkey -M viins '^[[1;5D' backward-word
bindkey -M vicmd '^[[1;5D' backward-word
bindkey '\ew' kill-region # [Esc-w] - Kill from the cursor to the mark
bindkey -s '\el' 'ls\n' # [Esc-l] - run command: ls
bindkey '^r' history-incremental-search-backward # [Ctrl-r] - Search backward incrementally for a specified string. The string may begin with ^ to anchor the search to the beginning of the line.
bindkey ' ' magic-space # [Space] - don't do history expansion
# Edit the current command line in $EDITOR
autoload -U edit-command-line
zle -N edit-command-line
bindkey '\C-x\C-e' edit-command-line
# file rename magick
bindkey "^[m" copy-prev-shell-word
# consider emacs keybindings:
#bindkey -e ## emacs key bindings
#
#bindkey '^[[A' up-line-or-search
#bindkey '^[[B' down-line-or-search
#bindkey '^[^[[C' emacs-forward-word
#bindkey '^[^[[D' emacs-backward-word
#
#bindkey -s '^X^Z' '%-^M'
#bindkey '^[e' expand-cmd-path
#bindkey '^[^I' reverse-menu-complete
#bindkey '^X^N' accept-and-infer-next-history
#bindkey '^W' kill-region
#bindkey '^I' complete-word
## Fix weird sequence that rxvt produces
#bindkey -s '^[[Z' '\t'
#

View File

@ -0,0 +1,20 @@
#!/usr/bin/zsh
# My version of the last-working-dir plugin (https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/last-working-dir/last-working-dir.plugin.zsh)
# Updates the last directory once directory is changed
autoload -U add-zsh-hook
add-zsh-hook chpwd chpwd_last_working_dir
chpwd_last_working_dir() {
# Don't run in subshells
[[ "$ZSH_SUBSHELL" -eq 0 ]] || return 0
pwd > ~/.last-working-dir
}
# Changes directory to the last working directory
lwd() {
if [[ -r ~/.last-working-dir ]]; then
lwd=$(cat ~/.last-working-dir)
cd $lwd
echo $lwd
fi
}

View File

@ -0,0 +1,14 @@
# newline between shell prompts
add_newline = false
#format = "$all$directory$character"
[line_break]
disabled = true
[directory]
fish_style_pwd_dir_length = 1
[status]
map_symbol = true
format = '[$symbol$status $common_meaning$signal_name$maybe_int]($style) '
disabled = false