Add ssh and git configuration
This commit is contained in:
@@ -1,80 +1,115 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
profile = import ../profile.nix;
|
||||
profile = import ../profile.nix;
|
||||
in
|
||||
{
|
||||
|
||||
imports = [
|
||||
./editor.nix
|
||||
./tex-environment.nix
|
||||
];
|
||||
imports = [
|
||||
./editor.nix
|
||||
./tex-environment.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
astyle
|
||||
hyfetch
|
||||
fzf-zsh
|
||||
distrobox
|
||||
home.packages = with pkgs; [
|
||||
git
|
||||
astyle
|
||||
hyfetch
|
||||
fzf-zsh
|
||||
distrobox
|
||||
];
|
||||
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
clock24 = true;
|
||||
extraConfig = builtins.readFile ./external/tmux.conf;
|
||||
};
|
||||
|
||||
programs.direnv.enable = true;
|
||||
programs.direnv.nix-direnv.enable = true;
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "Nina Chlóe Kassandra Reiß";
|
||||
email = "nina.reiss@nickr.eu";
|
||||
};
|
||||
push = {
|
||||
autoSetupRemote = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
enableDefaultConfig = true;
|
||||
|
||||
extraConfig = ''
|
||||
Host git.nickr.eu
|
||||
HostName git.nickr.eu
|
||||
Port 22
|
||||
|
||||
Host nickr.eu
|
||||
HostName nickr.eu
|
||||
Port 222
|
||||
|
||||
Host nichkara.eu
|
||||
HostName nichkara.eu
|
||||
Port 222
|
||||
|
||||
Host git.nichkara.eu
|
||||
HostName git.nichkara.eu
|
||||
Port 22
|
||||
'';
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autocd = true;
|
||||
|
||||
autosuggestion = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
syntaxHighlighting = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
history = {
|
||||
size = 4096;
|
||||
ignoreSpace = true;
|
||||
ignorePatterns = [ ];
|
||||
saveNoDups = true;
|
||||
ignoreAllDups = true;
|
||||
};
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "sonicradish";
|
||||
plugins = [
|
||||
"git"
|
||||
"z"
|
||||
"dotenv"
|
||||
"battery"
|
||||
"emoji"
|
||||
"emoji-clock"
|
||||
"fzf"
|
||||
"kitty"
|
||||
"themes"
|
||||
"tmux"
|
||||
"vi-mode"
|
||||
];
|
||||
};
|
||||
|
||||
setOptions = [
|
||||
"HIST_IGNORE_ALL_DUPS"
|
||||
];
|
||||
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
clock24 = true;
|
||||
extraConfig = ''
|
||||
|
||||
'';
|
||||
};
|
||||
|
||||
programs.direnv.enable = true;
|
||||
programs.direnv.nix-direnv.enable = true;
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autocd = true;
|
||||
|
||||
autosuggestion = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
syntaxHighlighting = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
history = {
|
||||
size = 4096;
|
||||
ignoreSpace = true;
|
||||
ignorePatterns = [ ];
|
||||
saveNoDups = true;
|
||||
ignoreAllDups = true;
|
||||
};
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "sonicradish";
|
||||
plugins = [
|
||||
"git"
|
||||
"z"
|
||||
"dotenv"
|
||||
"battery"
|
||||
"emoji"
|
||||
"emoji-clock"
|
||||
"fzf"
|
||||
"kitty"
|
||||
"themes"
|
||||
"tmux"
|
||||
"vi-mode"
|
||||
];
|
||||
};
|
||||
|
||||
setOptions = [
|
||||
"HIST_IGNORE_ALL_DUPS"
|
||||
];
|
||||
|
||||
shellAliases = {
|
||||
ll = "ls -lh";
|
||||
nix-check = "nixos-rebuild build";
|
||||
nix-update = "sudo nixos-rebuild switch";
|
||||
sirc = "ssh -t nichkara.eu tmux new-session -A -s weechat weechat";
|
||||
};
|
||||
shellAliases = {
|
||||
ll = "ls -lh";
|
||||
nix-check = "nixos-rebuild build";
|
||||
nix-update = "sudo nixos-rebuild switch";
|
||||
sirc = "ssh -t nichkara.eu tmux new-session -A -s weechat weechat";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,25 +1,26 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
profile = import ../profile.nix;
|
||||
profile = import ../profile.nix;
|
||||
in
|
||||
{
|
||||
|
||||
home.packages = with pkgs; [
|
||||
vim
|
||||
fzf
|
||||
ripgrep
|
||||
ripgrep-all
|
||||
ctags
|
||||
lua54Packages.luarocks-nix
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
vim
|
||||
fzf
|
||||
ripgrep
|
||||
ripgrep-all
|
||||
ctags
|
||||
lua54Packages.luarocks-nix
|
||||
nixfmt
|
||||
];
|
||||
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
withPython3 = true;
|
||||
withRuby = true;
|
||||
withNodeJs = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
};
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
withPython3 = true;
|
||||
withRuby = true;
|
||||
withNodeJs = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
};
|
||||
}
|
||||
|
||||
87
terminal-environment/external/tmux.conf
vendored
Normal file
87
terminal-environment/external/tmux.conf
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
##### CORE #####
|
||||
set -g default-terminal "tmux-256color"
|
||||
set -ga terminal-overrides ",xterm-256color:Tc"
|
||||
|
||||
set -g mouse on
|
||||
set -g focus-events on
|
||||
set -g history-limit 100000
|
||||
|
||||
set -g base-index 1
|
||||
setw -g pane-base-index 1
|
||||
|
||||
##### TIMING / UX #####
|
||||
set -g escape-time 10
|
||||
set -g repeat-time 600
|
||||
|
||||
##### BELL / ACTIVITY #####
|
||||
# Keine akustische Bell, nur visuell
|
||||
set -g bell-action none
|
||||
set -g visual-bell on
|
||||
set -g visual-activity on
|
||||
|
||||
setw -g monitor-activity on
|
||||
set -g activity-action none
|
||||
|
||||
# Window-Status bei Bell / Activity (Fallback-Styling)
|
||||
set -g window-status-bell-style "fg=#ff5555,bold"
|
||||
set -g window-status-activity-style "fg=#f1fa8c,bold"
|
||||
|
||||
##### COLORS (Dracula-ish) #####
|
||||
set -g status-style "bg=#1e1f29,fg=#c0caf5"
|
||||
set -g message-style "bg=#2a2b3d,fg=#c0caf5"
|
||||
|
||||
set -g pane-border-style "fg=#3b4261"
|
||||
set -g pane-active-border-style "fg=#7aa2f7"
|
||||
|
||||
##### STATUS BAR #####
|
||||
set -g status on
|
||||
set -g status-interval 2
|
||||
set -g status-position bottom
|
||||
set -g status-justify left
|
||||
|
||||
set -g status-left-length 100
|
||||
set -g status-right-length 100
|
||||
|
||||
##### LEFT: Session / Host #####
|
||||
set -g status-left " \
|
||||
#[fg=#7aa2f7,bold] #S#[default] \
|
||||
#[fg=#565f89] #[fg=#9ece6a]#H#[default] \
|
||||
"
|
||||
|
||||
##### WINDOW LIST #####
|
||||
# Inactive windows
|
||||
setw -g window-status-format " \
|
||||
#[fg=#565f89] #I:#W#[default] \
|
||||
#{?window_bell_flag,#[fg=#ff5555]🔔#[default],} \
|
||||
"
|
||||
|
||||
# Active window
|
||||
setw -g window-status-current-format " \
|
||||
#[fg=#1e1f29,bg=#7aa2f7,bold] #I:#W#[default] \
|
||||
#[fg=#1e1f29,bg=#7aa2f7]\
|
||||
#{?window_bell_flag,🔔,}#[default] \
|
||||
"
|
||||
|
||||
##### RIGHT: Clock only (no broken flags) #####
|
||||
set -g status-right " \
|
||||
#[fg=#565f89] #[fg=#7dcfff] %H:%M#[default] \
|
||||
"
|
||||
|
||||
##### PANE INFO #####
|
||||
set -g pane-border-status top
|
||||
set -g pane-border-format " #[fg=#565f89]#P #[fg=#7aa2f7]#{pane_current_command}#[default] "
|
||||
|
||||
##### SMART SPLITS #####
|
||||
bind | split-window -h
|
||||
bind - split-window -v
|
||||
#unbind '"'
|
||||
#unbind %
|
||||
|
||||
##### COPY MODE (VI) #####
|
||||
setw -g mode-keys vi
|
||||
bind -T copy-mode-vi v send -X begin-selection
|
||||
bind -T copy-mode-vi y send -X copy-selection
|
||||
|
||||
##### DIM INACTIVE PANES #####
|
||||
set -g window-style "bg=#1a1b26"
|
||||
set -g window-active-style "bg=#1e1f29"
|
||||
@@ -2,64 +2,64 @@
|
||||
|
||||
let
|
||||
genv = pkgs.writeShellScriptBin "genv" ''
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
DISTRO="$1"
|
||||
PRESET="$2"
|
||||
DISTRO="$1"
|
||||
PRESET="$2"
|
||||
|
||||
if [ -z "$DISTRO" ] || [ -z "$PRESET" ]; then
|
||||
echo "Usage: genv <distro> <preset>"
|
||||
exit 1
|
||||
if [ -z "$DISTRO" ] || [ -z "$PRESET" ]; then
|
||||
echo "Usage: genv <distro> <preset>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PROJECT=$(basename "$PWD")
|
||||
BOX="genv-$PROJECT"
|
||||
|
||||
# distro mapping
|
||||
case "$DISTRO" in
|
||||
ubuntu) IMAGE="docker.io/library/ubuntu:24.04" ;;
|
||||
arch) IMAGE="docker.io/library/archlinux:latest" ;;
|
||||
alpine) IMAGE="docker.io/library/alpine:latest" ;;
|
||||
*) IMAGE="$DISTRO" ;;
|
||||
esac
|
||||
|
||||
echo "[genv] image: $IMAGE"
|
||||
|
||||
# container nur erstellen wenn nötig
|
||||
if ! distrobox list | grep -q "$BOX"; then
|
||||
distrobox create --name "$BOX" --image "$IMAGE"
|
||||
fi
|
||||
|
||||
mkdir -p .genv
|
||||
|
||||
# preset kopieren
|
||||
cp ${./presets}/$PRESET.sh .genv/setup.sh
|
||||
chmod +x .genv/setup.sh
|
||||
|
||||
# envrc generieren
|
||||
cat > .envrc <<EOF
|
||||
export GENV_BOX="$BOX"
|
||||
|
||||
# container starten
|
||||
distrobox start "$GENV_BOX" >/dev/null 2>&1 || true
|
||||
|
||||
# setup einmalig
|
||||
if [ ! -f .genv/.init ]; then
|
||||
echo "[genv] setup läuft"
|
||||
distrobox enter "$GENV_BOX" -- bash .genv/setup.sh
|
||||
touch .genv/.init
|
||||
fi
|
||||
|
||||
PROJECT=$(basename "$PWD")
|
||||
BOX="genv-$PROJECT"
|
||||
|
||||
# distro mapping
|
||||
case "$DISTRO" in
|
||||
ubuntu) IMAGE="docker.io/library/ubuntu:24.04" ;;
|
||||
arch) IMAGE="docker.io/library/archlinux:latest" ;;
|
||||
alpine) IMAGE="docker.io/library/alpine:latest" ;;
|
||||
*) IMAGE="$DISTRO" ;;
|
||||
esac
|
||||
|
||||
echo "[genv] image: $IMAGE"
|
||||
|
||||
# container nur erstellen wenn nötig
|
||||
if ! distrobox list | grep -q "$BOX"; then
|
||||
distrobox create --name "$BOX" --image "$IMAGE"
|
||||
# tmux workflow
|
||||
if [ -z "$TMUX" ]; then
|
||||
tmux new-session -A -s "$GENV_BOX" \
|
||||
\; new-window -n editor "nvim" \
|
||||
\; new-window -n dev "distrobox enter $GENV_BOX"
|
||||
fi
|
||||
EOF
|
||||
|
||||
mkdir -p .genv
|
||||
|
||||
# preset kopieren
|
||||
cp ${./presets}/$PRESET.sh .genv/setup.sh
|
||||
chmod +x .genv/setup.sh
|
||||
|
||||
# envrc generieren
|
||||
cat > .envrc <<EOF
|
||||
export GENV_BOX="$BOX"
|
||||
|
||||
# container starten
|
||||
distrobox start "$GENV_BOX" >/dev/null 2>&1 || true
|
||||
|
||||
# setup einmalig
|
||||
if [ ! -f .genv/.init ]; then
|
||||
echo "[genv] setup läuft"
|
||||
distrobox enter "$GENV_BOX" -- bash .genv/setup.sh
|
||||
touch .genv/.init
|
||||
fi
|
||||
|
||||
# tmux workflow
|
||||
if [ -z "$TMUX" ]; then
|
||||
tmux new-session -A -s "$GENV_BOX" \
|
||||
\; new-window -n editor "nvim" \
|
||||
\; new-window -n dev "distrobox enter $GENV_BOX"
|
||||
fi
|
||||
EOF
|
||||
|
||||
echo "[genv] fertig → direnv allow"
|
||||
echo "[genv] fertig → direnv allow"
|
||||
'';
|
||||
in
|
||||
{
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
profile = import ../profile.nix;
|
||||
profile = import ../profile.nix;
|
||||
in
|
||||
{
|
||||
|
||||
home.packages = with pkgs; [
|
||||
texliveMedium
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
texliveMedium
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user