mirror of
https://git.gay/sneexy/nixos.git
synced 2026-01-11 05:03:15 -08:00
chore: LOTS of edits related to packages, zsh, kde and kitty
This commit is contained in:
parent
ad241378d1
commit
a62b8006ad
7 changed files with 481 additions and 13 deletions
|
|
@ -40,6 +40,16 @@
|
|||
experimental-features = "nix-command flakes";
|
||||
# Deduplicate and optimize nix store
|
||||
auto-optimise-store = true;
|
||||
# i'd say i trust myself tbh
|
||||
trusted-users = ["ruben"];
|
||||
substituters = [
|
||||
"https://cache.nixos.org"
|
||||
"https://nix-community.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
];
|
||||
};
|
||||
|
||||
# use linux-zen
|
||||
|
|
@ -48,6 +58,17 @@
|
|||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
# see https://nixos-and-flakes.thiscute.world/nixos-with-flakes/other-useful-tips#reducing-disk-usage
|
||||
# for below:
|
||||
# limit to 10 generations
|
||||
boot.loader.systemd-boot.configurationLimit = 10;
|
||||
|
||||
# Perform garbage collection weekly to maintain low disk usage
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 1w";
|
||||
};
|
||||
|
||||
# enable plymouth because it looks cool :)))
|
||||
boot.plymouth = {
|
||||
|
|
@ -55,6 +76,18 @@
|
|||
theme = "bgrt";
|
||||
};
|
||||
|
||||
# opengl and graphics settings
|
||||
# https://nixos.wiki/wiki/Accelerated_Video_Playback
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
environment.sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; }; # Force intel-media-driver
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -38,9 +38,6 @@
|
|||
curlHTTP3
|
||||
pinentry-curses
|
||||
|
||||
kitty
|
||||
wezterm
|
||||
|
||||
distrobox
|
||||
virt-manager
|
||||
|
||||
|
|
|
|||
55
users/ruben/config/ncmpcpp/config
Normal file
55
users/ruben/config/ncmpcpp/config
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
# _ __ ___ _ __ ___ _ __ ___ _ __ _ __
|
||||
# | '_ \ / __| '_ ` _ \| '_ \ / __| '_ \| '_ \
|
||||
# | | | | (__| | | | | | |_) | (__| |_) | |_) |
|
||||
# |_| |_|\___|_| |_| |_| .__/ \___| .__/| .__/
|
||||
# |_| |_| |_|
|
||||
# the REAL llama ass whipping
|
||||
mpd_music_dir = "~/Music"
|
||||
lyrics_directory = "~/.config/mpd/lyrics"
|
||||
|
||||
# genderal
|
||||
connected_message_on_startup = "yes"
|
||||
cyclic_scrolling = "yes"
|
||||
mouse_support = "yes"
|
||||
mouse_list_scroll_whole_page = "yes"
|
||||
lines_scrolled = "3"
|
||||
message_delay_time = "1"
|
||||
playlist_shorten_total_times = "yes"
|
||||
playlist_display_mode = "columns"
|
||||
browser_display_mode = "columns"
|
||||
search_engine_display_mode = "columns"
|
||||
playlist_editor_display_mode = "columns"
|
||||
autocenter_mode = "yes"
|
||||
centered_cursor = "yes"
|
||||
user_interface = "classic"
|
||||
locked_screen_width_part = "50"
|
||||
ask_for_locked_screen_width_part = "yes"
|
||||
external_editor = "nvim"
|
||||
main_window_color = "default"
|
||||
startup_screen = "playlist"
|
||||
|
||||
# ui elements visbility
|
||||
header_visibility = "yes"
|
||||
statusbar_visibility = "yes"
|
||||
titles_visibility = "yes"
|
||||
enable_window_title = "yes"
|
||||
display_volume_level = "yes"
|
||||
|
||||
# ui theming
|
||||
statusbar_color = "white"
|
||||
color1 = "white"
|
||||
color2 = "green"
|
||||
|
||||
progressbar_look = "─"
|
||||
progressbar_elapsed_color = "green"
|
||||
progressbar_color = "black"
|
||||
|
||||
now_playing_prefix = "$b$3$3 "
|
||||
now_playing_suffix = " $/b$8"
|
||||
current_item_prefix = "$b$7$/b$5 "
|
||||
current_item_suffix = " $8"
|
||||
|
||||
song_columns_list_format = "(50)[]{t|fr:Title} (0)[cyan]{a}"
|
||||
song_list_format = " {%t $R $8%a$8}|{%f $R $8%l$8} $8"
|
||||
song_status_format = "$6 {$3$b%t$/b} $1∙ $5 {$7$b%b$/b} $1∙ $4 {$8$b%a$/b}"
|
||||
song_window_title_format = "{%a -}{ %t}"
|
||||
61
users/ruben/config/starship.toml
Normal file
61
users/ruben/config/starship.toml
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
# Get editor completions based on the config schema
|
||||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
# left side of the prompt
|
||||
format = "$container$directory$character"
|
||||
|
||||
# right side of the prompt
|
||||
right_format = "$git_status$git_branch$memory_usage$cmd_duration$sudo"
|
||||
|
||||
# adds a newline whenever a command is completed
|
||||
add_newline = true
|
||||
|
||||
[character]
|
||||
success_symbol = "[ ](#a6e3a1)"
|
||||
error_symbol = "[ ](#f38ba8)"
|
||||
vicmd_symbol = "[ ](#f9e2af)"
|
||||
|
||||
[container]
|
||||
format = "[]($style)(bg:#89dceb fg:#11111b)[ ](bg:#89dceb fg:#11111b bold)[ ]($style)"
|
||||
style = "bg:none fg:#89dceb"
|
||||
disabled = false
|
||||
|
||||
[directory]
|
||||
format = "[]($style)[ ](bg:#11111b fg:#89b4fa)[$path](bg:#11111b fg:#74c7ec bold)[ ]($style)"
|
||||
style = "bg:none fg:#11111b"
|
||||
|
||||
[git_branch]
|
||||
format = "[]($style)[[ ](bg:#11111b fg:#f5c2e7)$branch](bg:#11111b fg:#f5e0dc)[ ]($style)"
|
||||
style = "bg:none fg:#11111b"
|
||||
|
||||
[git_status]
|
||||
format = "[]($style)[[ ](bg:#11111b fg:#cba6f7)$branch](bg:#11111b fg:#f2cdcd)[ ]($style)"
|
||||
style = "bg:none fg:#11111b"
|
||||
conflicted = "="
|
||||
ahead = "${count}"
|
||||
behind = "${count}"
|
||||
diverged = "${ahead_count}⇣${behind_count}"
|
||||
up_to_date = ""
|
||||
untracked = "?${count}"
|
||||
stashed = ""
|
||||
modified = "!${count}"
|
||||
staged = "+${count}"
|
||||
renamed = "»${count}"
|
||||
deleted = "${count}"
|
||||
|
||||
[cmd_duration]
|
||||
min_time = 30000
|
||||
format = "[]($style)[[ ](bg:#11111b fg:#fab387)$duration](bg:#11111b fg:#fab387)[ ]($style)"
|
||||
style = "bg:none fg:#11111b"
|
||||
|
||||
|
||||
[memory_usage]
|
||||
disabled = false
|
||||
threshold = 55
|
||||
format = "[]($style)[[ ](bg:#11111b fg:#f2cdcd)$ram](bg:#11111b fg:#f2cdcd)[ ]($style)"
|
||||
style = "bg:none fg:#11111b"
|
||||
|
||||
[sudo]
|
||||
format = "[]($style)[[ ](bg:#11111b fg:#f9e2af)](bg:#11111b fg:#f9e2af)[]($style)"
|
||||
style = "bg:none fg:#11111b"
|
||||
disabled = false
|
||||
207
users/ruben/config/zsh/plugins/editor/editor.plugin.zsh
Normal file
207
users/ruben/config/zsh/plugins/editor/editor.plugin.zsh
Normal file
|
|
@ -0,0 +1,207 @@
|
|||
#
|
||||
# Requirements
|
||||
#
|
||||
|
||||
# Return if requirements are not found.
|
||||
if [[ "$TERM" == 'dumb' ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
#
|
||||
# Options
|
||||
#
|
||||
|
||||
setopt BEEP # Beep on error in line editor.
|
||||
unsetopt FLOW_CONTROL # Allow the usage of ^Q/^S in the context of zsh.
|
||||
|
||||
#
|
||||
# Variables
|
||||
#
|
||||
|
||||
# Treat these characters as part of a word.
|
||||
WORDCHARS='*?_-.[]~&;!#$%^(){}<>'
|
||||
|
||||
# Use human-friendly identifiers.
|
||||
zmodload zsh/terminfo
|
||||
typeset -gA key_info
|
||||
|
||||
# Modifiers
|
||||
key_info=(
|
||||
'Control' '\C-'
|
||||
'Escape' '\e'
|
||||
'Meta' '\M-'
|
||||
)
|
||||
|
||||
# Basic keys
|
||||
key_info+=(
|
||||
'Backspace' "^?"
|
||||
'Delete' "^[[3~"
|
||||
'F1' "$terminfo[kf1]"
|
||||
'F2' "$terminfo[kf2]"
|
||||
'F3' "$terminfo[kf3]"
|
||||
'F4' "$terminfo[kf4]"
|
||||
'F5' "$terminfo[kf5]"
|
||||
'F6' "$terminfo[kf6]"
|
||||
'F7' "$terminfo[kf7]"
|
||||
'F8' "$terminfo[kf8]"
|
||||
'F9' "$terminfo[kf9]"
|
||||
'F10' "$terminfo[kf10]"
|
||||
'F11' "$terminfo[kf11]"
|
||||
'F12' "$terminfo[kf12]"
|
||||
'Insert' "$terminfo[kich1]"
|
||||
'Home' "$terminfo[khome]"
|
||||
'PageUp' "$terminfo[kpp]"
|
||||
'End' "$terminfo[kend]"
|
||||
'PageDown' "$terminfo[knp]"
|
||||
'Up' "$terminfo[kcuu1]"
|
||||
'Left' "$terminfo[kcub1]"
|
||||
'Down' "$terminfo[kcud1]"
|
||||
'Right' "$terminfo[kcuf1]"
|
||||
'BackTab' "$terminfo[kcbt]"
|
||||
)
|
||||
|
||||
# Mod plus another key
|
||||
key_info+=(
|
||||
'AltLeft' "${key_info[Escape]}${key_info[Left]} \e[1;3D"
|
||||
'AltRight' "${key_info[Escape]}${key_info[Right]} \e[1;3C"
|
||||
'ControlLeft' '\e[1;5D \e[5D \e\e[D \eOd'
|
||||
'ControlRight' '\e[1;5C \e[5C \e\e[C \eOc'
|
||||
'ControlPageUp' '\e[5;5~'
|
||||
'ControlPageDown' '\e[6;5~'
|
||||
)
|
||||
|
||||
#
|
||||
# Functions
|
||||
#
|
||||
|
||||
function is-term-family {
|
||||
if [[ $TERM = $1 || $TERM = $1-* ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
function is-tmux {
|
||||
if is-term-family tmux; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [[ -n "$TMUX" ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
function update-cursor-style {
|
||||
# We currently only support the xterm family of terminals
|
||||
if ! is-term-family xterm && ! is-term-family rxvt && ! is-tmux; then
|
||||
return
|
||||
fi
|
||||
|
||||
if bindkey -lL main | grep viins > /dev/null; then
|
||||
# For vi-mode we
|
||||
case $KEYMAP in
|
||||
vicmd) printf '\e[2 q';;
|
||||
viins|main) printf '\e[6 q';;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
zle -N update-cursor-style
|
||||
|
||||
# Enables terminal application mode
|
||||
function zle-line-init {
|
||||
# The terminal must be in application mode when ZLE is active for $terminfo
|
||||
# values to be valid.
|
||||
if (( $+terminfo[smkx] )); then
|
||||
# Enable terminal application mode.
|
||||
echoti smkx
|
||||
fi
|
||||
|
||||
# Ensure we have the correct cursor. We could probably do this less
|
||||
# frequently, but this does what we need and shouldn't incur that much
|
||||
# overhead.
|
||||
zle update-cursor-style
|
||||
}
|
||||
zle -N zle-line-init
|
||||
|
||||
# Disables terminal application mode
|
||||
function zle-line-finish {
|
||||
# The terminal must be in application mode when ZLE is active for $terminfo
|
||||
# values to be valid.
|
||||
if (( $+terminfo[rmkx] )); then
|
||||
# Disable terminal application mode.
|
||||
echoti rmkx
|
||||
fi
|
||||
}
|
||||
zle -N zle-line-finish
|
||||
|
||||
# Resets the prompt when the keymap changes
|
||||
function zle-keymap-select {
|
||||
zle update-cursor-style
|
||||
|
||||
zle reset-prompt
|
||||
zle -R
|
||||
}
|
||||
zle -N zle-keymap-select
|
||||
|
||||
#
|
||||
# Init
|
||||
#
|
||||
|
||||
# Reset to default key bindings
|
||||
bindkey -d
|
||||
|
||||
#
|
||||
# Keybinds
|
||||
#
|
||||
|
||||
# Global keybinds
|
||||
local -A global_keybinds
|
||||
global_keybinds=(
|
||||
"$key_info[Home]" beginning-of-line
|
||||
"$key_info[End]" end-of-line
|
||||
"$key_info[Delete]" delete-char
|
||||
)
|
||||
|
||||
# emacs and vi insert mode keybinds
|
||||
local -A viins_keybinds
|
||||
viins_keybinds=(
|
||||
"$key_info[Backspace]" backward-delete-char
|
||||
"$key_info[Control]W" backward-kill-word
|
||||
)
|
||||
|
||||
# vi command mode keybinds
|
||||
local -A vicmd_keybinds
|
||||
vicmd_keybinds=(
|
||||
"$key_info[Delete]" delete-char
|
||||
)
|
||||
|
||||
# Special case for ControlLeft and ControlRight because they have multiple
|
||||
# possible binds.
|
||||
for key in "${(s: :)key_info[ControlLeft]}" "${(s: :)key_info[AltLeft]}"; do
|
||||
bindkey -M emacs "$key" emacs-backward-word
|
||||
bindkey -M viins "$key" vi-backward-word
|
||||
bindkey -M vicmd "$key" vi-backward-word
|
||||
done
|
||||
for key in "${(s: :)key_info[ControlRight]}" "${(s: :)key_info[AltRight]}"; do
|
||||
bindkey -M emacs "$key" emacs-forward-word
|
||||
bindkey -M viins "$key" vi-forward-word
|
||||
bindkey -M vicmd "$key" vi-forward-word
|
||||
done
|
||||
|
||||
# Bind all global and viins keys to the emacs keymap
|
||||
for key bind in ${(kv)global_keybinds} ${(kv)viins_keybinds}; do
|
||||
bindkey -M emacs "$key" "$bind"
|
||||
done
|
||||
|
||||
# Bind all global, vi, and viins keys to the viins keymap
|
||||
for key bind in ${(kv)global_keybinds} ${(kv)viins_keybinds}; do
|
||||
bindkey -M viins "$key" "$bind"
|
||||
done
|
||||
|
||||
# Bind all global, vi, and vicmd keys to the vicmd keymap
|
||||
for key bind in ${(kv)global_keybinds} ${(kv)vicmd_keybinds}; do
|
||||
bindkey -M vicmd "$key" "$bind"
|
||||
done
|
||||
|
|
@ -44,6 +44,18 @@
|
|||
|
||||
xdg.userDirs.enable = true;
|
||||
|
||||
# dotfiles
|
||||
# ncmpcpp
|
||||
home.file.".config/ncmpcpp" = {
|
||||
source = ./config/ncmpcpp;
|
||||
recursive = true;
|
||||
};
|
||||
# modified zsh plugins
|
||||
home.file.".config/zsh" = {
|
||||
source = ./config/zsh;
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
# ╭───────────────────────────────────────────────╮
|
||||
# │ _ __ _ │
|
||||
# │ _ __ ___ __| |_ ___ __ ___ _ _ / _(_)__ _ │
|
||||
|
|
|
|||
|
|
@ -23,14 +23,15 @@
|
|||
fastfetch
|
||||
fd
|
||||
delta
|
||||
lsd
|
||||
eza
|
||||
ripgrep
|
||||
sd
|
||||
starship
|
||||
zoxide
|
||||
krabby
|
||||
cod
|
||||
atuin
|
||||
|
||||
alejandra
|
||||
cargo
|
||||
usbutils
|
||||
jq
|
||||
ffmpeg_6-full
|
||||
|
|
@ -73,6 +74,8 @@
|
|||
protontricks
|
||||
|
||||
mpv
|
||||
mpdris2
|
||||
mpd-discord-rpc
|
||||
nextcloud-client
|
||||
watchmate
|
||||
obs-studio
|
||||
|
|
@ -91,12 +94,89 @@
|
|||
];
|
||||
|
||||
# my preferred shell customized to my needs
|
||||
# TODO: theres only oh-my-zsh support out of the box, figure out
|
||||
# how to customize sheldon and starship
|
||||
# thanks to https://github.com/Yumasi/nixos-home/blob/main/zsh.nix
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
dotDir = ".config/zsh";
|
||||
history.size = 50000;
|
||||
syntaxHighlighting.enable = true;
|
||||
|
||||
antidote.enable = true;
|
||||
antidote.plugins = [
|
||||
# completions
|
||||
"mattmc3/zephyr path:plugins/completion"
|
||||
|
||||
# shell benchmarking
|
||||
"romkatv/zsh-bench kind:path kind:defer"
|
||||
|
||||
# oh my zsh
|
||||
"ohmyzsh/ohmyzsh path:lib/key-bindings.zsh"
|
||||
"ohmyzsh/ohmyzsh path:lib/clipboard.zsh"
|
||||
#"ohmyzsh/ohmyzsh path:lib/completion.zsh"
|
||||
"ohmyzsh/ohmyzsh path:plugins/copybuffer"
|
||||
"ohmyzsh/ohmyzsh path:plugins/copyfile"
|
||||
"ohmyzsh/ohmyzsh path:plugins/copypath"
|
||||
"ohmyzsh/ohmyzsh path:plugins/extract kind:defer"
|
||||
|
||||
# zsh-utils
|
||||
"belak/zsh-utils path:history"
|
||||
"belak/zsh-utils path:utility"
|
||||
"${config.home.homeDirectory}/${config.programs.zsh.dotDir}/plugins/editor"
|
||||
|
||||
# useful plugins
|
||||
"atuinsh/atuin kind:defer"
|
||||
"paulirish/git-open kind:defer"
|
||||
"clavelm/yt-dlp-omz-plugin kind:defer"
|
||||
"dim-an/cod kind:defer"
|
||||
"jirutka/zsh-shift-select kind:defer"
|
||||
"unixorn/fzf-zsh-plugin kind:defer"
|
||||
|
||||
"zdharma-continuum/fast-syntax-highlighting kind:defer"
|
||||
"zsh-users/zsh-autosuggestions kind:defer"
|
||||
"zsh-users/zsh-history-substring-search kind:defer"
|
||||
];
|
||||
|
||||
shellAliases = {
|
||||
# kitty
|
||||
s = "kitten ssh";
|
||||
|
||||
# alias average commands to modern unix-util counterpartrs
|
||||
cd = "z";
|
||||
grep = "rg";
|
||||
find = "fd";
|
||||
df = "duf";
|
||||
# different listing/ls styles
|
||||
ls = "eza -lh --icons=always --hyperlink";
|
||||
l = "eza";
|
||||
la = "eza -1";
|
||||
lt = "eza -T";
|
||||
cat = "bat --paging=never";
|
||||
|
||||
# custom aliases
|
||||
music = "ncmpcpp";
|
||||
wttr = "curl 'wttr.in/?0' && curl 'wttr.in/?0?m'";
|
||||
please = "sudo";
|
||||
fucking = "sudo";
|
||||
for-the-love-of-god = "sudo";
|
||||
};
|
||||
|
||||
initExtra = ''
|
||||
# export some custom paths
|
||||
# (required for some packages/scripts/applications and some things in here)
|
||||
path+=("${config.home.homeDirectory}/.local/bin")
|
||||
path+=("${config.home.homeDirectory}/.cargo/bin")
|
||||
|
||||
# funny pokemon
|
||||
krabby random
|
||||
|
||||
# load zoxide
|
||||
eval "$(zoxide init zsh)"
|
||||
'';
|
||||
};
|
||||
|
||||
# starship prompt
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
settings = pkgs.lib.importTOML ./config/starship.toml;
|
||||
};
|
||||
|
||||
# fuzzy command finder, required by a decent amount of things
|
||||
|
|
@ -121,6 +201,29 @@
|
|||
};
|
||||
};
|
||||
|
||||
# KITTY !!!!
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
|
||||
font.name = "JetBrainsMono NF";
|
||||
font.size = 11.8;
|
||||
|
||||
theme = "Catppuccin-Mocha";
|
||||
|
||||
settings = {
|
||||
cursor_shape = "beam";
|
||||
window_padding_width = 8;
|
||||
|
||||
scrollback_lines = 2000;
|
||||
scrollback_pager_history_size = 512;
|
||||
|
||||
tab_bar_style = "powerline";
|
||||
tab_powerline_style = "round";
|
||||
};
|
||||
|
||||
shellIntegration.enableZshIntegration = true;
|
||||
};
|
||||
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
|
|
@ -156,10 +259,10 @@
|
|||
services.mpd = {
|
||||
enable = true;
|
||||
|
||||
dataDir = "/home/ruben/.config/mpd";
|
||||
musicDirectory = "/home/ruben/Music";
|
||||
playlistDirectory = "/home/ruben/.config/mpd/playlists";
|
||||
dbFile = "/home/ruben/.config/mpd/db";
|
||||
dataDir = "${config.home.homeDirectory}/.config/mpd";
|
||||
musicDirectory = "${config.home.homeDirectory}/Music";
|
||||
playlistDirectory = "${config.home.homeDirectory}/.config/mpd/playlists";
|
||||
dbFile = "${config.home.homeDirectory}/.config/mpd/db";
|
||||
|
||||
extraConfig = ''
|
||||
state_file_interval "120"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue