2023-10-06 01:12:55 +02:00
|
|
|
{ pkgs, ... }:
|
2023-07-31 14:18:02 +02:00
|
|
|
let username = "rachel";
|
|
|
|
homeDir = "/home/${username}";
|
|
|
|
SAX2 = pkgs.fetchurl {
|
|
|
|
name = "SAX2";
|
|
|
|
url = "https://abrudz.github.io/SAX2/SAX2.ttf";
|
|
|
|
sha256 = "sha256-DgvDWXO2fnKZNu9EvQOq8GNMTU3PUdp85+/0ZHdRXZc=";
|
|
|
|
|
|
|
|
recursiveHash = true;
|
|
|
|
|
|
|
|
downloadToTemp = true;
|
|
|
|
postFetch = ''
|
|
|
|
mkdir -p "$out/share/fonts/truetype"
|
|
|
|
mv "$downloadedFile" "$out/share/fonts/truetype/SAX2.ttf"
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
in
|
|
|
|
{
|
|
|
|
home = {
|
|
|
|
username = username;
|
|
|
|
homeDirectory = homeDir;
|
|
|
|
packages = with pkgs; [
|
|
|
|
neofetch
|
|
|
|
pfetch
|
|
|
|
unzip
|
|
|
|
zip
|
|
|
|
xz
|
|
|
|
gzip
|
|
|
|
bzip2
|
|
|
|
p7zip
|
|
|
|
usbutils
|
|
|
|
pciutils
|
|
|
|
nettools
|
|
|
|
nmap
|
|
|
|
arp-scan
|
|
|
|
acpi
|
2023-09-12 21:28:31 +02:00
|
|
|
julia-bin
|
2023-07-31 14:18:02 +02:00
|
|
|
python3
|
|
|
|
ghc
|
|
|
|
firefox
|
|
|
|
sxiv
|
|
|
|
zathura
|
|
|
|
gnupg
|
|
|
|
agda
|
|
|
|
discord
|
|
|
|
dig
|
|
|
|
xxd
|
|
|
|
zoom-us
|
|
|
|
slack
|
|
|
|
imagemagick
|
|
|
|
ffmpeg
|
|
|
|
sl
|
|
|
|
cowsay
|
|
|
|
lolcat
|
|
|
|
fortune
|
|
|
|
banner
|
|
|
|
yt-dlp
|
|
|
|
libreoffice
|
|
|
|
protonmail-bridge
|
|
|
|
pass
|
|
|
|
protonvpn-cli
|
|
|
|
protonvpn-gui
|
|
|
|
thunderbird
|
|
|
|
tidal-hifi
|
|
|
|
signal-desktop
|
|
|
|
transmission-gtk
|
|
|
|
xclip
|
|
|
|
clinfo
|
|
|
|
glxinfo
|
|
|
|
vulkan-tools
|
|
|
|
obs-studio
|
|
|
|
file
|
|
|
|
gimp
|
|
|
|
SAX2
|
|
|
|
twemoji-color-font
|
|
|
|
bat
|
|
|
|
steam
|
|
|
|
steam-run
|
2023-08-13 10:57:39 +02:00
|
|
|
rmapi
|
2023-08-19 22:19:49 +02:00
|
|
|
lutris
|
2023-09-25 12:10:43 +02:00
|
|
|
texlive.combined.scheme-full
|
2023-07-31 14:18:02 +02:00
|
|
|
];
|
|
|
|
stateVersion = "23.05";
|
|
|
|
};
|
|
|
|
|
|
|
|
xdg.userDirs = {
|
|
|
|
enable = true;
|
|
|
|
createDirectories = true;
|
|
|
|
desktop = "${homeDir}";
|
|
|
|
documents = "${homeDir}/doc";
|
|
|
|
download = "${homeDir}/dwn";
|
|
|
|
music = "${homeDir}/music";
|
|
|
|
pictures = "${homeDir}/img";
|
|
|
|
publicShare = "${homeDir}/srv";
|
|
|
|
templates = "${homeDir}/doc/templates";
|
|
|
|
videos = "${homeDir}/vid";
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
programs = {
|
|
|
|
bash = {
|
|
|
|
enable = true;
|
|
|
|
enableCompletion = true;
|
|
|
|
historyFile = "/dev/null";
|
|
|
|
sessionVariables = {
|
|
|
|
PS1 ="\\033[1m\\u\\033[0m@\\033[1m\\h\\033[0m: \\w\nλ ";
|
|
|
|
BROWSER = "firefox";
|
|
|
|
XINITRC = "${homeDir}/bin/xinitrc";
|
|
|
|
XAUTHORITY = "${homeDir}/.local/share/Xauthority";
|
|
|
|
PASH_KEYID = "3E4A909C8FEF6E3783699C79DFC26EF8EDAD6D71";
|
|
|
|
QT_AUTO_SCREEN_FACTOR = 1;
|
|
|
|
PATH = "${homeDir}/bin:$PATH";
|
|
|
|
};
|
|
|
|
shellAliases = {
|
|
|
|
x = "startx";
|
|
|
|
rm = "rm -i";
|
|
|
|
cal = "cal -m";
|
|
|
|
};
|
|
|
|
initExtra = ''
|
|
|
|
source ~/.profile
|
|
|
|
set -o vi
|
|
|
|
'';
|
|
|
|
};
|
2023-08-25 14:40:08 +02:00
|
|
|
|
|
|
|
mpv = {
|
|
|
|
enable = true;
|
|
|
|
config = {
|
|
|
|
hwdec = "auto-safe";
|
|
|
|
vo = "gpu";
|
|
|
|
profile = "gpu-hq";
|
|
|
|
};
|
|
|
|
};
|
2023-09-01 15:21:19 +02:00
|
|
|
|
|
|
|
rofi = {
|
|
|
|
enable = true;
|
|
|
|
theme = "solarized";
|
|
|
|
};
|
2023-07-31 14:18:02 +02:00
|
|
|
|
|
|
|
emacs = {
|
|
|
|
enable = true;
|
|
|
|
package = pkgs.emacs-gtk;
|
|
|
|
extraPackages = epkgs: with epkgs; with melpaStablePackages; [
|
|
|
|
nix-mode
|
2023-10-06 01:15:08 +02:00
|
|
|
rust-mode
|
2023-07-31 14:18:02 +02:00
|
|
|
pdf-tools
|
|
|
|
dune
|
|
|
|
tuareg
|
|
|
|
idris-mode
|
|
|
|
multi-vterm
|
|
|
|
org-superstar
|
|
|
|
org-fragtog
|
|
|
|
visual-fill
|
|
|
|
writeroom-mode
|
|
|
|
solarized-theme
|
|
|
|
doom-modeline
|
|
|
|
all-the-icons-dired
|
|
|
|
page-break-lines
|
|
|
|
all-the-icons
|
|
|
|
dashboard
|
|
|
|
vterm
|
|
|
|
undo-fu
|
|
|
|
latex-math-preview
|
|
|
|
haskell-mode
|
|
|
|
evil-surround
|
|
|
|
evil-org
|
|
|
|
evil-commentary
|
2023-08-15 10:06:47 +02:00
|
|
|
evil
|
2023-07-31 14:18:02 +02:00
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
git = {
|
|
|
|
enable = true;
|
|
|
|
userName = "Rachel Lambda Samuelsson";
|
|
|
|
userEmail = "depsterr@protonmail.com";
|
|
|
|
extraConfig = {
|
|
|
|
init.defaultBranch = "master";
|
|
|
|
};
|
|
|
|
};
|
2023-10-06 01:14:52 +02:00
|
|
|
|
|
|
|
neovim = {
|
|
|
|
defaultEditor = true;
|
|
|
|
enable = true;
|
|
|
|
vimAlias = true;
|
|
|
|
extraLuaConfig = ''
|
|
|
|
require("tmux").setup({ copy_sync = { redirect_to_clipboard = true } });
|
|
|
|
'';
|
|
|
|
extraConfig = ''
|
|
|
|
set rnu nu
|
|
|
|
set ts=2 sw=2 expandtab
|
|
|
|
set clipboard=unnamedplus
|
|
|
|
set laststatus=2 noshowmode
|
|
|
|
let g:lightline = { 'colorscheme': 'gruvbox' }
|
|
|
|
colorscheme gruvbox
|
|
|
|
hi Normal guibg=NONE ctermbg=NONE
|
|
|
|
'';
|
|
|
|
plugins = with pkgs.vimPlugins; [
|
|
|
|
surround-nvim
|
|
|
|
comment-nvim
|
|
|
|
vimtex
|
|
|
|
gruvbox-nvim
|
|
|
|
lightline-vim
|
|
|
|
lightline-gruvbox-vim
|
|
|
|
tmux-nvim
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
tmux = {
|
|
|
|
enable = true;
|
|
|
|
clock24 = true;
|
|
|
|
escapeTime = 0;
|
|
|
|
keyMode = "vi";
|
|
|
|
mouse = false;
|
|
|
|
shortcut = "a";
|
|
|
|
extraConfig = ''
|
|
|
|
bind h split -hb -c '#{pane_current_path}'
|
|
|
|
bind j split -v -c '#{pane_current_path}'
|
|
|
|
bind k split -vb -c '#{pane_current_path}'
|
|
|
|
bind l split -h -c '#{pane_current_path}'
|
|
|
|
|
|
|
|
is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?\.?(view|n?vim?x?)(-wrapped)?(diff)?$'"
|
|
|
|
|
|
|
|
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
|
|
|
|
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
|
|
|
|
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
|
|
|
|
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
|
|
|
|
|
|
|
|
bind-key -T copy-mode-vi 'C-h' select-pane -L
|
|
|
|
bind-key -T copy-mode-vi 'C-j' select-pane -D
|
|
|
|
bind-key -T copy-mode-vi 'C-k' select-pane -U
|
|
|
|
bind-key -T copy-mode-vi 'C-l' select-pane -R
|
|
|
|
|
|
|
|
bind -n 'M-h' if-shell "$is_vim" 'send-keys M-h' 'resize-pane -L 1'
|
|
|
|
bind -n 'M-j' if-shell "$is_vim" 'send-keys M-j' 'resize-pane -D 1'
|
|
|
|
bind -n 'M-k' if-shell "$is_vim" 'send-keys M-k' 'resize-pane -U 1'
|
|
|
|
bind -n 'M-l' if-shell "$is_vim" 'send-keys M-l' 'resize-pane -R 1'
|
|
|
|
|
|
|
|
bind-key -T copy-mode-vi M-h resize-pane -L 1
|
|
|
|
bind-key -T copy-mode-vi M-j resize-pane -D 1
|
|
|
|
bind-key -T copy-mode-vi M-k resize-pane -U 1
|
|
|
|
bind-key -T copy-mode-vi M-l resize-pane -R 1
|
|
|
|
|
|
|
|
set-option -g status on
|
|
|
|
set-option -g status-style bg=default
|
|
|
|
set-option -g status-style fg="#FF7F50"
|
|
|
|
set-option -g status-interval 2
|
|
|
|
set-option -g status-justify "centre"
|
|
|
|
set-option -g status-right " λ "
|
|
|
|
|
|
|
|
set -g status-interval 1
|
|
|
|
set-window-option -g window-status-separator "-"
|
|
|
|
set-window-option -g window-status-current-format " #[fg=#df73ff bold]!![ #{b:pane_current_path}/ ] #{b:window_index} $ #{b:pane_current_command}!! "
|
|
|
|
set-window-option -g window-status-format " #{b:window_index} [ #{b:pane_current_path}/ ] #{b:pane_current_command} "
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
alacritty = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
window = {
|
|
|
|
padding.x = 5;
|
|
|
|
padding.y = 5;
|
|
|
|
decoration = "none";
|
|
|
|
};
|
|
|
|
dynamic_title = false;
|
|
|
|
mouse_hide_when_typing = true;
|
|
|
|
draw_bold_text_with_bright_colors = false;
|
|
|
|
scrolling.history = 0;
|
|
|
|
font = {
|
|
|
|
normal.family = "SAX2";
|
|
|
|
size = 11;
|
|
|
|
};
|
|
|
|
shell.program =
|
|
|
|
let tmux-menu = pkgs.writeScript "tmux-menu" ''
|
|
|
|
s="$(tmux ls 2>/dev/null)"
|
|
|
|
[ "$s" ] && s="$s
|
|
|
|
"
|
|
|
|
c=$(${pkgs.fzf}/bin/fzf -1 <<-EOF
|
|
|
|
''${s}New Session
|
|
|
|
Raw Shell
|
|
|
|
EOF
|
|
|
|
) || exit
|
|
|
|
case "$c" in
|
|
|
|
"New Session")
|
|
|
|
read -p "Name? " -r n
|
|
|
|
${pkgs.tmux}/bin/tmux new -s "$n" ;;
|
|
|
|
"Raw Shell")
|
|
|
|
${pkgs.bash}/bin/bash ;;
|
|
|
|
*)
|
|
|
|
${pkgs.tmux}/bin/tmux attach-session -t "''${c%%:*}" ;;
|
|
|
|
esac
|
|
|
|
''; in "${tmux-menu}";
|
|
|
|
};
|
|
|
|
};
|
2023-07-31 14:18:02 +02:00
|
|
|
};
|
|
|
|
}
|