working on zsh
@@ -29,7 +29,7 @@ Droidnix is a modular, declarative NixOS + Home Manager configuration system. It
|
|||||||
This project uses a **modular NixOS configuration** with **Hyprland** and **MangoWC** support, designed for **literate programming** and **cross-device reusability**.
|
This project uses a **modular NixOS configuration** with **Hyprland** and **MangoWC** support, designed for **literate programming** and **cross-device reusability**.
|
||||||
The Droidnix repository is organized into two main parts:
|
The Droidnix repository is organized into two main parts:
|
||||||
1. =.assets/=: Static, non-generated files (e.g., configs, scripts, themes).
|
1. =.assets/=: Static, non-generated files (e.g., configs, scripts, themes).
|
||||||
2. Generated folders (=common=, =hyprland=, =mangowc=): NixOS and Home Manager configurations, generated from Org files.
|
2. Generated folders (=system=, =hyprland=, =mangowc=): NixOS and Home Manager configurations, generated from Org files.
|
||||||
|
|
||||||
#+title: NixOS Configuration Structure
|
#+title: NixOS Configuration Structure
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ This directory contains configurations specific to MangoWC.
|
|||||||
#+BEGIN_EXAMPLE
|
#+BEGIN_EXAMPLE
|
||||||
.
|
.
|
||||||
├── assets
|
├── assets
|
||||||
│ ├── common
|
│ ├── system
|
||||||
│ │ ├── conf
|
│ │ ├── conf
|
||||||
│ │ │ └── base.conf
|
│ │ │ └── base.conf
|
||||||
│ │ ├── cursors
|
│ │ ├── cursors
|
||||||
@@ -294,7 +294,7 @@ This directory contains configurations specific to MangoWC.
|
|||||||
** First Setup
|
** First Setup
|
||||||
1. Clone this repository.
|
1. Clone this repository.
|
||||||
2. Run the setup script: =./setup_droidnix.sh=.
|
2. Run the setup script: =./setup_droidnix.sh=.
|
||||||
3. Edit =.assets/common/conf/base.conf= to choose your window manager (=wm = "hyprland"= or =wm = "mangowc"=).
|
3. Edit =.assets/system/conf/base.conf= to choose your window manager (=wm = "hyprland"= or =wm = "mangowc"=).
|
||||||
4. Tangle this Org file to generate Nix configurations: =C-c C-v t= in Emacs or use this: =emacs README.org --batch -f org-babel-tangle && emacs --batch --eval "(setq org-html-htmlize-output-type nil)" README.org -f org-html-export-to-html=
|
4. Tangle this Org file to generate Nix configurations: =C-c C-v t= in Emacs or use this: =emacs README.org --batch -f org-babel-tangle && emacs --batch --eval "(setq org-html-htmlize-output-type nil)" README.org -f org-html-export-to-html=
|
||||||
5. Build and switch: =sudo nixos-rebuild switch --flake .#<hostname>=.
|
5. Build and switch: =sudo nixos-rebuild switch --flake .#<hostname>=.
|
||||||
|
|
||||||
@@ -306,8 +306,8 @@ This directory contains configurations specific to MangoWC.
|
|||||||
:END:
|
:END:
|
||||||
The =.assets/= folder contains all static files, such as configs, scripts, and themes. These files are not generated and can be edited directly.
|
The =.assets/= folder contains all static files, such as configs, scripts, and themes. These files are not generated and can be edited directly.
|
||||||
|
|
||||||
** =.assets/common/=
|
** =.assets/system/=
|
||||||
This folder contains files shared across both window managers, such as wallpapers, shell configs, and common scripts.
|
This folder contains files shared across both window managers, such as wallpapers, shell configs, and system scripts.
|
||||||
|
|
||||||
- =conf/base.conf=: Defines the window manager choice and other global settings.
|
- =conf/base.conf=: Defines the window manager choice and other global settings.
|
||||||
- =scripts/=: System-wide scripts (e.g., utilities, helpers).
|
- =scripts/=: System-wide scripts (e.g., utilities, helpers).
|
||||||
@@ -646,11 +646,11 @@ This is top file of this level which contains just an import statement for all r
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** =generated/system/applications/packages.nix=
|
** =generated/system/applications/packages.nix=
|
||||||
This will import all packages listed in ./assets/common/apps/packlages.conf
|
This will import all packages listed in ./assets/system/apps/packlages.conf
|
||||||
#+BEGIN_SRC nix :tangle generated/system/applications/packages.nix :noweb tangle :mkdirp yes :eval never-html
|
#+BEGIN_SRC nix :tangle generated/system/applications/packages.nix :noweb tangle :mkdirp yes :eval never-html
|
||||||
{ config, lib, pkgs, flakeRoot, inputs, ... }:
|
{ config, lib, pkgs, flakeRoot, inputs, ... }:
|
||||||
let
|
let
|
||||||
packagesConfPath = "${flakeRoot}/assets/common/apps/packages.conf";
|
packagesConfPath = "${flakeRoot}/assets/system/apps/packages.conf";
|
||||||
raw = builtins.readFile packagesConfPath;
|
raw = builtins.readFile packagesConfPath;
|
||||||
# IMPORTANT: explicit "\n" so we never accidentally split into characters
|
# IMPORTANT: explicit "\n" so we never accidentally split into characters
|
||||||
rawLines = lib.splitString "\n" raw;
|
rawLines = lib.splitString "\n" raw;
|
||||||
@@ -695,7 +695,7 @@ in
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** =generated/system/applications/flatpaks.nix=
|
** =generated/system/applications/flatpaks.nix=
|
||||||
This will import all packages listed in ./assets/common/apps/flatpaks.conf
|
This will import all packages listed in ./assets/system/apps/flatpaks.conf
|
||||||
#+BEGIN_SRC nix :tangle generated/system/applications/flatpaks.nix :noweb tangle :mkdirp yes :eval never-html
|
#+BEGIN_SRC nix :tangle generated/system/applications/flatpaks.nix :noweb tangle :mkdirp yes :eval never-html
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
@@ -706,7 +706,7 @@ This will import all packages listed in ./assets/common/apps/flatpaks.conf
|
|||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
moduleName = "install-flatpaks";
|
moduleName = "install-flatpaks";
|
||||||
flatpakConfPath = "${flakeRoot}/assets/common/apps/flatpaks.conf";
|
flatpakConfPath = "${flakeRoot}/assets/system/apps/flatpaks.conf";
|
||||||
raw = builtins.readFile flatpakConfPath;
|
raw = builtins.readFile flatpakConfPath;
|
||||||
# Explicit "\n" so we never accidentally split into characters
|
# Explicit "\n" so we never accidentally split into characters
|
||||||
rawLines = lib.splitString "\n" raw;
|
rawLines = lib.splitString "\n" raw;
|
||||||
@@ -864,7 +864,7 @@ This is top file of this level which contains just an import statement for all r
|
|||||||
# XDG Desktop Portal settings for better application integration
|
# XDG Desktop Portal settings for better application integration
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config.common.default = [ "hyprland" "gtk" ];
|
config.system.default = [ "hyprland" "gtk" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Environment variables for a Wayland session
|
# Environment variables for a Wayland session
|
||||||
@@ -1290,11 +1290,11 @@ in
|
|||||||
|
|
||||||
# Copy the actual kitty.conf (not a symlink)
|
# Copy the actual kitty.conf (not a symlink)
|
||||||
xdg.configFile."kitty/kitty.conf".text = lib.concatStringsSep "\n" [
|
xdg.configFile."kitty/kitty.conf".text = lib.concatStringsSep "\n" [
|
||||||
(builtins.readFile "${flakeRoot}/assets/common/conf/kitty/kitty.conf")
|
(builtins.readFile "${flakeRoot}/assets/system/conf/kitty/kitty.conf")
|
||||||
];
|
];
|
||||||
|
|
||||||
# Copy the theme file
|
# Copy the theme file
|
||||||
xdg.configFile."kitty/Catppuccin-Mocha.conf".source = "${flakeRoot}/assets/common/conf/kitty/Catppuccin-Mocha.conf";
|
xdg.configFile."kitty/Catppuccin-Mocha.conf".source = "${flakeRoot}/assets/system/conf/kitty/Catppuccin-Mocha.conf";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@@ -1308,7 +1308,7 @@ This file sets up starship prompt
|
|||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
configFile = "${flakeRoot}/assets/common/conf/starship.toml";
|
configFile = "${flakeRoot}/assets/system/conf/starship.toml";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -1318,46 +1318,100 @@ This file sets up starship prompt
|
|||||||
** =generated/system/applications/terminal_shell/zsh.nix=
|
** =generated/system/applications/terminal_shell/zsh.nix=
|
||||||
This sets up the zsh terminal
|
This sets up the zsh terminal
|
||||||
#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/zsh.nix :noweb tangle :mkdirp yes :eval never-html
|
#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/zsh.nix :noweb tangle :mkdirp yes :eval never-html
|
||||||
{ config, pkgs, lib, user, flakeRoot, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
let
|
|
||||||
zshConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/zsh";
|
|
||||||
assetsDir = "${flakeRoot}/assets/common/conf/zsh";
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
home-manager.users.${user.username} = {
|
# --- NixOS Configuration ---
|
||||||
home.packages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
zsh-syntax-highlighting
|
zsh
|
||||||
];
|
git
|
||||||
|
docker
|
||||||
|
];
|
||||||
|
|
||||||
|
# --- Home Manager Configuration ---
|
||||||
|
home-manager.users.henrov = {
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
autosuggestion.enable = true;
|
|
||||||
syntaxHighlighting.enable = true;
|
# Use oh-my-zsh only for themes (optional)
|
||||||
oh-my-zsh = {
|
oh-my-zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "agnoster";
|
theme = "agnoster"; # Fallback
|
||||||
plugins = [
|
customThemes = {
|
||||||
"git"
|
catppuccin-mocha = ''
|
||||||
"docker"
|
# Catppuccin Mocha colors
|
||||||
"kubectl"
|
local mocha_base="#1E1E2E"
|
||||||
"history"
|
local mocha_surface0="#313244"
|
||||||
"command-not-found"
|
local mocha_text="#CDD6F4"
|
||||||
"extract"
|
local mocha_lavender="#B4BEFE"
|
||||||
];
|
local mocha_blue="#89B4FA"
|
||||||
};
|
local mocha_sapphire="#74C7EC"
|
||||||
shellAliases = {
|
local mocha_teal="#94E2D5"
|
||||||
ls = "exa --icons -a --group-directories-first";
|
local mocha_green="#A6E3A1"
|
||||||
ll = "exa --icons -la --group-directories-first";
|
local mocha_yellow="#F9E2AF"
|
||||||
};
|
local mocha_peach="#FAB387"
|
||||||
|
local mocha_maroon="#EBA0AC"
|
||||||
|
local mocha_red="#F38BA8"
|
||||||
|
local mocha_mauve="#CBA6F7"
|
||||||
|
local mocha_pink="#F5C2E7"
|
||||||
|
local mocha_flamingo="#F2CDCD"
|
||||||
|
local mocha_rosewater="#F5E0DC"
|
||||||
|
|
||||||
|
# Prompt
|
||||||
|
PROMPT='%{$fg[$mocha_blue]%}%n%{$reset_color%}@%{$fg[$mocha_peach]%}%m%{$reset_color%} %{$fg[$mocha_lavender]%}%~%{$reset_color%} %{$fg[$mocha_red]%}$%{$reset_color%} '
|
||||||
|
RPROMPT='%{$fg[$mocha_green]%}%T%{$reset_color%}'
|
||||||
|
|
||||||
|
# Git prompt
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[$mocha_yellow]%}(%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[$mocha_yellow]%})%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[$mocha_red]%}✗%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[$mocha_green]%}✓%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg[$mocha_blue]%}⇡%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg[$mocha_blue]%}⇣%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[$mocha_pink]%}?%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[$mocha_sapphire]%}+%{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg[$mocha_red]%}!%{$reset_color%}"
|
||||||
|
|
||||||
|
# Virtualenv/pyenv
|
||||||
|
ZSH_THEME_VIRTUAL_ENV_PREFIX="(%{$fg[$mocha_teal]%}"
|
||||||
|
ZSH_THEME_VIRTUAL_ENV_SUFFIX="%{$reset_color%})"
|
||||||
|
|
||||||
|
# Right prompt with Git status
|
||||||
|
RPROMPT='$(git_prompt_info) %{$fg[$mocha_green]%}%T%{$reset_color%}'
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
theme = "catppuccin-mocha";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Declare all plugins via Nixpkgs for reproducibility
|
||||||
|
plugins = with pkgs.zshPlugins; [
|
||||||
|
zsh-autosuggestions
|
||||||
|
zsh-syntax-highlighting
|
||||||
|
zsh-completions
|
||||||
|
zsh-history-substring-search
|
||||||
|
zsh-you-should-use # Optional: Suggests aliases
|
||||||
|
];
|
||||||
|
|
||||||
|
# Source plugins that need explicit activation
|
||||||
|
initExtra = ''
|
||||||
|
source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||||
|
source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||||
|
source ${pkgs.zsh-history-substring-search}/share/zsh-history-substring-search/zsh-history-substring-search.zsh
|
||||||
|
ZSH_THEME="catppuccin-mocha"
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
# Use the .zshrc file from assets
|
|
||||||
xdg.configFile."zsh/.zshrc".source = "${assetsDir}/.zshrc";
|
# Home Manager packages (optional, if not already in systemPackages)
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
direnv
|
||||||
|
git-extras
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
** =generated/system/development/databases/top.nix=
|
** =generated/system/development/databases/top.nix=
|
||||||
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
|
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
|
||||||
#+BEGIN_SRC nix :tangle generated/system/development/databases/top.nix :noweb tangle :mkdirp yes :eval never-html
|
#+BEGIN_SRC nix :tangle generated/system/development/databases/top.nix :noweb tangle :mkdirp yes :eval never-html
|
||||||
|
|||||||
@@ -1,84 +0,0 @@
|
|||||||
typeset -U path cdpath fpath manpath
|
|
||||||
for profile in ${(z)NIX_PROFILES}; do
|
|
||||||
fpath+=($profile/share/zsh/site-functions $profile/share/zsh/$ZSH_VERSION/functions $profile/share/zsh/vendor-completions)
|
|
||||||
done
|
|
||||||
|
|
||||||
HELPDIR="${ZSH_HELPDIR:-${XDG_DATA_HOME:-$HOME/.local/share}/zsh/$ZSH_VERSION/help}"
|
|
||||||
|
|
||||||
# Source zsh-autosuggestions (use environment variable)
|
|
||||||
if [ -n "$ZSH_AUTOSUGGESTIONS_PATH" ]; then
|
|
||||||
source "$ZSH_AUTOSUGGESTIONS_PATH"
|
|
||||||
ZSH_AUTOSUGGEST_STRATEGY=(history)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# oh-my-zsh extra settings for plugins
|
|
||||||
plugins=(git sudo extract colored-man-pages command-not-found history docker kubectl)
|
|
||||||
|
|
||||||
source "$ZSH/oh-my-zsh.sh"
|
|
||||||
|
|
||||||
# Source zoxide (use environment variable)
|
|
||||||
if [ -n "$ZOXIDE_INIT" ]; then
|
|
||||||
eval "$($ZOXIDE_INIT zsh)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# History options should be set in .zshrc and after oh-my-zsh sourcing.
|
|
||||||
HISTSIZE="10000"
|
|
||||||
SAVEHIST="10000"
|
|
||||||
HISTFILE="${XDG_CONFIG_HOME:-$HOME/.config}/zsh/.zsh_history"
|
|
||||||
mkdir -p "$(dirname "$HISTFILE")"
|
|
||||||
|
|
||||||
# Source fzf (use environment variable)
|
|
||||||
if [[ $options[zle] = on ]] && [ -n "$FZF_ZSH" ]; then
|
|
||||||
source <($FZF_ZSH --zsh)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Source zsh-syntax-highlighting (use environment variable)
|
|
||||||
if [ -n "$ZSH_SYNTAX_HIGHLIGHTING_PATH" ]; then
|
|
||||||
source "$ZSH_SYNTAX_HIGHLIGHTING_PATH"
|
|
||||||
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Source catppuccin zsh-syntax-highlighting (use environment variable)
|
|
||||||
if [ -n "$CATPPUCCIN_ZSH_SYNTAX_PATH" ]; then
|
|
||||||
source "$CATPPUCCIN_ZSH_SYNTAX_PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set shell options
|
|
||||||
set_opts=(
|
|
||||||
HIST_FCNTL_LOCK HIST_IGNORE_DUPS HIST_IGNORE_SPACE SHARE_HISTORY autocd
|
|
||||||
NO_APPEND_HISTORY NO_EXTENDED_HISTORY NO_HIST_EXPIRE_DUPS_FIRST
|
|
||||||
NO_HIST_FIND_NO_DUPS NO_HIST_IGNORE_ALL_DUPS NO_HIST_SAVE_NO_DUPS
|
|
||||||
)
|
|
||||||
for opt in "${set_opts[@]}"; do
|
|
||||||
setopt "$opt"
|
|
||||||
done
|
|
||||||
unset opt set_opts
|
|
||||||
|
|
||||||
|
|
||||||
# Source starship (use environment variable)
|
|
||||||
# if [[ $TERM != "dumb" ]] && [ -n "$STARSHIP_INIT" ]; then
|
|
||||||
# eval "$($STARSHIP_INIT zsh)"
|
|
||||||
# fi
|
|
||||||
|
|
||||||
# Kitty shell integration
|
|
||||||
if test -n "$KITTY_INSTALLATION_DIR"; then
|
|
||||||
export KITTY_SHELL_INTEGRATION="no-rc"
|
|
||||||
autoload -Uz -- "$KITTY_INSTALLATION_DIR/shell-integration/zsh/kitty-integration"
|
|
||||||
kitty-integration
|
|
||||||
unfunction kitty-integration
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Source direnv (use environment variable)
|
|
||||||
if [ -n "$DIRENV_HOOK" ]; then
|
|
||||||
eval "$($DIRENV_HOOK zsh)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Aliases
|
|
||||||
# alias -- la='eza -a'
|
|
||||||
# alias -- ll='eza -l'
|
|
||||||
# alias -- lla='eza -la'
|
|
||||||
# alias -- ls='eza'
|
|
||||||
# alias -- lt='eza --tree'
|
|
||||||
|
|
||||||
# Eat shell integration
|
|
||||||
[ -n "$EAT_SHELL_INTEGRATION_DIR" ] && source "$EAT_SHELL_INTEGRATION_DIR/zsh"
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
#!/usr/bin/env zsh
|
|
||||||
|
|
||||||
# --- Environment Variables ---
|
|
||||||
export EDITOR="nvim"
|
|
||||||
export PATH="$HOME/.local/bin:$PATH"
|
|
||||||
export PATH="$HOME/.cargo/bin:$PATH" # Example: Add Rust's cargo binaries
|
|
||||||
|
|
||||||
# --- Aliases ---
|
|
||||||
# (You can move these from your Nix config to here if you prefer)
|
|
||||||
alias gs="git status"
|
|
||||||
alias ga="git add"
|
|
||||||
alias gc="git commit -m"
|
|
||||||
alias gp="git push"
|
|
||||||
alias gco="git checkout"
|
|
||||||
alias ll="exa --icons -la --group-directories-first"
|
|
||||||
alias ls="exa --icons -a --group-directories-first"
|
|
||||||
|
|
||||||
# --- Functions ---
|
|
||||||
# Example: Create a new directory and cd into it
|
|
||||||
mkcd() {
|
|
||||||
mkdir -p "$1" && cd "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
# --- Shell Options ---
|
|
||||||
setopt HIST_IGNORE_ALL_DUPS # Ignore duplicate commands in history
|
|
||||||
setopt HIST_IGNORE_SPACE # Ignore commands starting with a space
|
|
||||||
setopt APPEND_HISTORY # Append to history file, don't overwrite
|
|
||||||
setopt INC_APPEND_HISTORY # Append to history file as soon as the command is entered
|
|
||||||
|
|
||||||
# --- Key Bindings ---
|
|
||||||
# Example: Edit command line in $EDITOR
|
|
||||||
autoload -U edit-command-line
|
|
||||||
zle -N edit-command-line
|
|
||||||
bindkey '^xe' edit-command-line # Ctrl+x, e
|
|
||||||
|
|
||||||
# --- Prompt Customization ---
|
|
||||||
# (Starship usually handles this, but you can add pre-starship prompts here)
|
|
||||||
|
|
||||||
# --- Load other files ---
|
|
||||||
# Source other files (e.g., secrets, local overrides)
|
|
||||||
[[ -f "$HOME/.zshrc.local" ]] && source "$HOME/.zshrc.local"
|
|
||||||
|
|
||||||
# --- Fuzzy Finder (fzf) ---
|
|
||||||
# If not already loaded in .zshrc
|
|
||||||
[[ $- == *i* ]] && source "$(brew --prefix)/opt/fzf/shell/key-bindings.zsh" 2>/dev/null
|
|
||||||
[[ $- == *i* ]] && source "$(brew --prefix)/opt/fzf/shell/completion.zsh" 2>/dev/null
|
|
||||||
|
|
||||||
# --- Conditional Loading ---
|
|
||||||
# Only load if not already loaded
|
|
||||||
if [[ -z "$TMUX" ]]; then
|
|
||||||
# Example: Start tmux if not already in a session
|
|
||||||
if command -v tmux &>/dev/null && [ -n "$PS1" ]; then
|
|
||||||
exec tmux
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
##############################################
|
||||||
|
# Aliases (source-of-truth)
|
||||||
|
#
|
||||||
|
# This file is written in bash/zsh alias syntax in [bash_zsh], [bash_specific], [zsh_specific].
|
||||||
|
# Fish has different syntax; the Nix module translates [bash_zsh] into fish format and then
|
||||||
|
# appends [fish_specific] as-is.
|
||||||
|
##############################################
|
||||||
|
|
||||||
|
##############################################
|
||||||
|
# Generic aliases (bash/zsh)
|
||||||
|
# These are intended to be available in bash and zsh.
|
||||||
|
##############################################
|
||||||
|
[bash_zsh]
|
||||||
|
alias ll='ls -lah'
|
||||||
|
alias gs='git status'
|
||||||
|
alias ga='git add'
|
||||||
|
alias gc='git commit'
|
||||||
|
alias gp='git push'
|
||||||
|
alias gcp='git add . && git commit && git push'
|
||||||
|
|
||||||
|
alias cd='z'
|
||||||
|
|
||||||
|
alias nps='xdg-open https://search.nixos.org'
|
||||||
|
alias hvnx='cd ~/Repos/nixos/henrovnix_ok'
|
||||||
|
alias emt='hvnx && emacs README.org --batch -f org-babel-tangle && emacs -Q --batch README.org -f org-html-export-to-html'
|
||||||
|
alias nxs='hvnx && sudo nixos-rebuild switch --flake .#traveldroid'
|
||||||
|
alias nxt='hvnx && sudo nixos-rebuild test --flake .#traveldroid'
|
||||||
|
alias nxv='hvnx && sudo nixos-rebuild build-vm --flake .#traveldroid && "$(ls -1 ./result/bin/run-*-vm | head -n 1)"'
|
||||||
|
|
||||||
|
alias rb='systemctl reboot'
|
||||||
|
alias po='systemctl poweroff'
|
||||||
|
|
||||||
|
alias fpl='flatpak list'
|
||||||
|
alias fps='flatpak search'
|
||||||
|
alias fpi='flatpak install'
|
||||||
|
alias fpr='flatpak run'
|
||||||
|
|
||||||
|
alias nxc='ssh henrov@nextcloud.data-pro.nu'
|
||||||
|
|
||||||
|
|
||||||
|
alias vs='code'
|
||||||
|
alias blog='cd ~/Repos/blog && ll'
|
||||||
|
alias keys='hyprctl binds'
|
||||||
|
|
||||||
|
|
||||||
|
##############################################
|
||||||
|
# Shell-specific aliases / examples
|
||||||
|
#
|
||||||
|
# Everything below is COMMENTED OUT on purpose.
|
||||||
|
# These examples show syntax or commands that are shell-specific
|
||||||
|
# (or behave differently across shells).
|
||||||
|
##############################################
|
||||||
|
|
||||||
|
[bash_specific]
|
||||||
|
# Enable recursive globbing (**)
|
||||||
|
# alias sg='shopt -s globstar'
|
||||||
|
|
||||||
|
[zsh_specific]
|
||||||
|
# Recursive globbing works by default in zsh; this prints matches one-per-line
|
||||||
|
# alias recglob='print -l **/*.nix'
|
||||||
|
|
||||||
|
[fish_specific]
|
||||||
|
# Fish has its own language; this is fish-only syntax (not bash/zsh)
|
||||||
|
# alias setvar='set -gx EDITOR emacs'
|
||||||
|
|
||||||
|
[dash_specific]
|
||||||
|
# dash is a minimal POSIX shell; shown here only as an example
|
||||||
|
# alias com='command -v ls'
|
||||||
|
|
||||||
|
[nushell_specific]
|
||||||
|
# Nushell pipelines structured data; this is nu-only syntax
|
||||||
|
# alias fbf='ls | where size > 1mb | get name'
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
##############################################
|
||||||
|
# Enabled shells (source-of-truth)
|
||||||
|
#
|
||||||
|
# Edit this file in the repo:
|
||||||
|
# ./assets/conf/dev/terminal/enabled_shells.conf
|
||||||
|
#
|
||||||
|
# After changing, rebuild Home Manager / your system as you normally do.
|
||||||
|
##############################################
|
||||||
|
|
||||||
|
[enabled_shells]
|
||||||
|
bash = yes
|
||||||
|
zsh = yes
|
||||||
|
fish = no
|
||||||
|
dash = no
|
||||||
|
nushell = no
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
# vim:ft=kitty
|
||||||
|
|
||||||
|
## name: Catppuccin Kitty Mocha
|
||||||
|
## author: Catppuccin Org
|
||||||
|
## license: MIT
|
||||||
|
## upstream: https://github.com/catppuccin/kitty/blob/main/themes/mocha.conf
|
||||||
|
## blurb: Soothing pastel theme for the high-spirited!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# The basic colors
|
||||||
|
foreground #cdd6f4
|
||||||
|
background #1e1e2e
|
||||||
|
selection_foreground #1e1e2e
|
||||||
|
selection_background #f5e0dc
|
||||||
|
|
||||||
|
# Cursor colors
|
||||||
|
cursor #f5e0dc
|
||||||
|
cursor_text_color #1e1e2e
|
||||||
|
|
||||||
|
# Scrollbar colors
|
||||||
|
scrollbar_handle_color #9399b2
|
||||||
|
scrollbar_track_color #45475a
|
||||||
|
|
||||||
|
# URL color when hovering with mouse
|
||||||
|
url_color #f5e0dc
|
||||||
|
|
||||||
|
# Kitty window border colors
|
||||||
|
active_border_color #b4befe
|
||||||
|
inactive_border_color #6c7086
|
||||||
|
bell_border_color #f9e2af
|
||||||
|
|
||||||
|
# OS Window titlebar colors
|
||||||
|
wayland_titlebar_color system
|
||||||
|
macos_titlebar_color system
|
||||||
|
|
||||||
|
# Tab bar colors
|
||||||
|
active_tab_foreground #11111b
|
||||||
|
active_tab_background #cba6f7
|
||||||
|
inactive_tab_foreground #cdd6f4
|
||||||
|
inactive_tab_background #181825
|
||||||
|
tab_bar_background #11111b
|
||||||
|
|
||||||
|
# Colors for marks (marked text in the terminal)
|
||||||
|
mark1_foreground #1e1e2e
|
||||||
|
mark1_background #b4befe
|
||||||
|
mark2_foreground #1e1e2e
|
||||||
|
mark2_background #cba6f7
|
||||||
|
mark3_foreground #1e1e2e
|
||||||
|
mark3_background #74c7ec
|
||||||
|
|
||||||
|
# The 16 terminal colors
|
||||||
|
|
||||||
|
# black
|
||||||
|
color0 #45475a
|
||||||
|
color8 #585b70
|
||||||
|
|
||||||
|
# red
|
||||||
|
color1 #f38ba8
|
||||||
|
color9 #f38ba8
|
||||||
|
|
||||||
|
# green
|
||||||
|
color2 #a6e3a1
|
||||||
|
color10 #a6e3a1
|
||||||
|
|
||||||
|
# yellow
|
||||||
|
color3 #f9e2af
|
||||||
|
color11 #f9e2af
|
||||||
|
|
||||||
|
# blue
|
||||||
|
color4 #89b4fa
|
||||||
|
color12 #89b4fa
|
||||||
|
|
||||||
|
# magenta
|
||||||
|
color5 #f5c2e7
|
||||||
|
color13 #f5c2e7
|
||||||
|
|
||||||
|
# cyan
|
||||||
|
color6 #94e2d5
|
||||||
|
color14 #94e2d5
|
||||||
|
|
||||||
|
# white
|
||||||
|
color7 #bac2de
|
||||||
|
color15 #a6adc8
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
// Zed settings
|
||||||
|
//
|
||||||
|
// For information on how to configure Zed, see the Zed
|
||||||
|
// documentation: https://zed.dev/docs/configuring-zed
|
||||||
|
//
|
||||||
|
// To see all of Zed's default settings without changing your
|
||||||
|
// custom settings, run `zed: open default settings` from the
|
||||||
|
// command palette (cmd-shift-p / ctrl-shift-p)
|
||||||
|
{
|
||||||
|
"agent": {
|
||||||
|
"default_model": {
|
||||||
|
"provider": "ollama",
|
||||||
|
"model": "codellama:34b",
|
||||||
|
"enable_thinking": false
|
||||||
|
},
|
||||||
|
"favorite_models": [],
|
||||||
|
"model_parameters": []
|
||||||
|
},
|
||||||
|
"ui_font_size": 16,
|
||||||
|
"buffer_font_size": 15,
|
||||||
|
"theme": {
|
||||||
|
"mode": "system",
|
||||||
|
"light": "One Light",
|
||||||
|
"dark": "One Dark",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 290 KiB After Width: | Height: | Size: 290 KiB |
|
Before Width: | Height: | Size: 306 KiB After Width: | Height: | Size: 306 KiB |
|
Before Width: | Height: | Size: 391 KiB After Width: | Height: | Size: 391 KiB |
|
Before Width: | Height: | Size: 203 KiB After Width: | Height: | Size: 203 KiB |
|
Before Width: | Height: | Size: 382 KiB After Width: | Height: | Size: 382 KiB |
|
Before Width: | Height: | Size: 224 KiB After Width: | Height: | Size: 224 KiB |
|
Before Width: | Height: | Size: 221 KiB After Width: | Height: | Size: 221 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 133 KiB |
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 136 KiB |
|
Before Width: | Height: | Size: 149 KiB After Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 627 B After Width: | Height: | Size: 627 B |
|
Before Width: | Height: | Size: 625 B After Width: | Height: | Size: 625 B |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 629 B After Width: | Height: | Size: 629 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 977 B After Width: | Height: | Size: 977 B |
|
Before Width: | Height: | Size: 988 B After Width: | Height: | Size: 988 B |
|
Before Width: | Height: | Size: 629 B After Width: | Height: | Size: 629 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |