Compare commits
No commits in common. "0718f6d21c3e7721ba5e882d38b8329aeee59528" and "e84836ce41a1d8d7f8511a1a6904eb762e2e32ac" have entirely different histories.
0718f6d21c
...
e84836ce41
13 changed files with 14 additions and 362 deletions
34
MANIFEST
34
MANIFEST
|
|
@ -1,34 +0,0 @@
|
|||
# Dotfiles Symlink Manifest
|
||||
#
|
||||
# Format: <os>:<source>:<target>
|
||||
# os = common | linux | darwin
|
||||
# source = path relative to config/
|
||||
# target = destination path ($HOME and $XDG_CONFIG_HOME are expanded)
|
||||
#
|
||||
# Lines starting with # are comments. Empty lines are ignored.
|
||||
|
||||
# Common configs (both Linux and Darwin)
|
||||
common:direnv:${XDG_CONFIG_HOME}/direnv
|
||||
common:fish:${XDG_CONFIG_HOME}/fish
|
||||
common:ghostty:${XDG_CONFIG_HOME}/ghostty
|
||||
common:git:${XDG_CONFIG_HOME}/git
|
||||
common:kitty:${XDG_CONFIG_HOME}/kitty
|
||||
common:nvim:${XDG_CONFIG_HOME}/nvim
|
||||
common:sesh:${XDG_CONFIG_HOME}/sesh
|
||||
common:spotify-player:${XDG_CONFIG_HOME}/spotify-player
|
||||
common:tmux:${XDG_CONFIG_HOME}/tmux
|
||||
common:yazi:${XDG_CONFIG_HOME}/yazi
|
||||
common:zathura:${XDG_CONFIG_HOME}/zathura
|
||||
common:emacs:${XDG_CONFIG_HOME}/emacs
|
||||
|
||||
# Linux-only configs
|
||||
linux:autorandr:${XDG_CONFIG_HOME}/autorandr
|
||||
linux:sioyek/keys_user.config:${XDG_CONFIG_HOME}/sioyek/keys_user.config
|
||||
linux:sioyek/prefs_user.linux.config:${XDG_CONFIG_HOME}/sioyek/prefs_user.config
|
||||
|
||||
# Darwin-only configs
|
||||
darwin:aerospace:${XDG_CONFIG_HOME}/aerospace
|
||||
darwin:sketchybar:${XDG_CONFIG_HOME}/sketchybar
|
||||
darwin:yabai:${XDG_CONFIG_HOME}/yabai
|
||||
darwin:sioyek/keys_user.config:${HOME}/Library/Application Support/sioyek/keys_user.config
|
||||
darwin:sioyek/prefs_user.darwin.config:${HOME}/Library/Application Support/sioyek/prefs_user.config
|
||||
|
|
@ -1,176 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# dotfiles-link - Symlink dotfiles without Nix
|
||||
#
|
||||
# Usage: dotfiles-link [--dry-run] [--force]
|
||||
#
|
||||
# Reads MANIFEST file from dotfiles root and creates symlinks accordingly.
|
||||
# Works on both Linux and macOS (Darwin).
|
||||
#
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# ============================================================================
|
||||
# Configuration
|
||||
# ============================================================================
|
||||
|
||||
DOTFILES_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
CONFIG_DIR="${DOTFILES_DIR}/config"
|
||||
MANIFEST="${DOTFILES_DIR}/MANIFEST"
|
||||
|
||||
# Detect OS
|
||||
case "$(uname -s)" in
|
||||
Darwin) OS="darwin" ;;
|
||||
Linux) OS="linux" ;;
|
||||
*)
|
||||
echo "Unsupported OS: $(uname -s)" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# XDG config directory
|
||||
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||
|
||||
# ============================================================================
|
||||
# Functions
|
||||
# ============================================================================
|
||||
|
||||
DRY_RUN=true
|
||||
FORCE=false
|
||||
|
||||
usage() {
|
||||
echo "Usage: $(basename "$0") [--apply] [--force]"
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " --apply Actually create symlinks (dry-run is default)"
|
||||
echo " --force Remove existing files/symlinks before linking"
|
||||
echo ""
|
||||
echo "Manifest: ${MANIFEST}"
|
||||
echo "Detected OS: ${OS}"
|
||||
}
|
||||
|
||||
log() {
|
||||
echo "[dotfiles-link] $*"
|
||||
}
|
||||
|
||||
# Expand variables in target path
|
||||
expand_path() {
|
||||
local path="$1"
|
||||
# Use eval to expand $HOME and $XDG_CONFIG_HOME
|
||||
eval echo "$path"
|
||||
}
|
||||
|
||||
create_symlink() {
|
||||
local source="$1"
|
||||
local target="$2"
|
||||
local target_dir
|
||||
target_dir="$(dirname "$target")"
|
||||
|
||||
# Check if source exists
|
||||
if [[ ! -e $source ]]; then
|
||||
log "SKIP: Source does not exist: $source"
|
||||
return
|
||||
fi
|
||||
|
||||
# Create parent directory if needed
|
||||
if [[ ! -d $target_dir ]]; then
|
||||
if $DRY_RUN; then
|
||||
log "WOULD CREATE DIR: $target_dir"
|
||||
else
|
||||
log "CREATE DIR: $target_dir"
|
||||
mkdir -p "$target_dir"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Handle existing target
|
||||
if [[ -e $target || -L $target ]]; then
|
||||
if [[ -L $target ]] && [[ "$(readlink "$target")" == "$source" ]]; then
|
||||
log "OK: $target (already linked)"
|
||||
return
|
||||
fi
|
||||
|
||||
if $FORCE; then
|
||||
if $DRY_RUN; then
|
||||
log "WOULD REMOVE: $target"
|
||||
else
|
||||
log "REMOVE: $target"
|
||||
rm -rf "$target"
|
||||
fi
|
||||
else
|
||||
log "SKIP: $target exists (use --force to override)"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
# Create symlink
|
||||
if $DRY_RUN; then
|
||||
log "WOULD LINK: $target -> $source"
|
||||
else
|
||||
log "LINK: $target -> $source"
|
||||
ln -s "$source" "$target"
|
||||
fi
|
||||
}
|
||||
|
||||
process_manifest() {
|
||||
if [[ ! -f $MANIFEST ]]; then
|
||||
log "ERROR: Manifest not found: $MANIFEST"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
while IFS= read -r line || [[ -n $line ]]; do
|
||||
# Skip comments and empty lines
|
||||
[[ -z $line || $line =~ ^[[:space:]]*# ]] && continue
|
||||
|
||||
# Parse: os:source:target
|
||||
local entry_os="${line%%:*}"
|
||||
local rest="${line#*:}"
|
||||
local source="${rest%%:*}"
|
||||
local target="${rest#*:}"
|
||||
|
||||
# Check if this entry applies to current OS
|
||||
if [[ $entry_os != "common" && $entry_os != "$OS" ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Expand variables and create symlink
|
||||
target="$(expand_path "$target")"
|
||||
create_symlink "${CONFIG_DIR}/${source}" "$target"
|
||||
done <"$MANIFEST"
|
||||
}
|
||||
|
||||
# ============================================================================
|
||||
# Main
|
||||
# ============================================================================
|
||||
|
||||
# Parse arguments
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--apply)
|
||||
DRY_RUN=false
|
||||
shift
|
||||
;;
|
||||
--force)
|
||||
FORCE=true
|
||||
shift
|
||||
;;
|
||||
-h | --help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $1"
|
||||
usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
log "Dotfiles directory: ${DOTFILES_DIR}"
|
||||
log "OS: ${OS}"
|
||||
$DRY_RUN && log "DRY RUN MODE - no changes will be made"
|
||||
echo ""
|
||||
|
||||
process_manifest
|
||||
|
||||
echo ""
|
||||
log "Done!"
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
output DP-1
|
||||
off
|
||||
output DP-2
|
||||
off
|
||||
output DP-4
|
||||
off
|
||||
output DP-6
|
||||
off
|
||||
output DP-7
|
||||
off
|
||||
output DP-8
|
||||
off
|
||||
output DP-3
|
||||
crtc 2
|
||||
mode 1920x1080
|
||||
pos 1155x0
|
||||
rate 60.00
|
||||
x-prop-colorspace Default
|
||||
x-prop-max_bpc 16
|
||||
x-prop-non_desktop 0
|
||||
x-prop-scaling_mode None
|
||||
x-prop-underscan off
|
||||
x-prop-underscan_hborder 0
|
||||
x-prop-underscan_vborder 0
|
||||
output DP-5
|
||||
crtc 0
|
||||
mode 2560x1080
|
||||
pos 3075x0
|
||||
primary
|
||||
rate 59.98
|
||||
x-prop-colorspace Default
|
||||
x-prop-max_bpc 16
|
||||
x-prop-non_desktop 0
|
||||
x-prop-scaling_mode None
|
||||
x-prop-underscan off
|
||||
x-prop-underscan_hborder 0
|
||||
x-prop-underscan_vborder 0
|
||||
output eDP-1
|
||||
crtc 1
|
||||
mode 2880x1920
|
||||
pos 0x1080
|
||||
rate 120.00
|
||||
x-prop-colorspace Default
|
||||
x-prop-max_bpc 16
|
||||
x-prop-non_desktop 0
|
||||
x-prop-scaling_mode None
|
||||
x-prop-underscan off
|
||||
x-prop-underscan_hborder 0
|
||||
x-prop-underscan_vborder 0
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
DP-3 00ffffffffffff0009d1827f01010101191f010380361e782e9055a75553a028135054a56b80d1c081c081008180a9c0b30081bc0101023a801871382d40582c450072105300001e000000ff00454237364d3033363838534c30000000fd0018f01eff22000a202020202020000000fc005a4f57494520584c204c43440a016702032df34d90040302011112133f1f20404e2309070783010000e200cf67030c002000003c67d85dc40144c0206c8400aa5f00a0407490370072105300001c6c84808070384d403020350072105300001a6c8480527d3840403040350072105300001a00000000000000000000000000000000000000000000000000000000c3
|
||||
DP-5 00ffffffffffff001e6df976baa00600091c010380502278eaca95a6554ea1260f5054256b807140818081c0a9c0b300d1c08100d1cfcd4600a0a0381f4030203a0072105300001a003a801871382d40582c450072105300001e000000fd00284b5a5a18000a202020202020000000fc004c4720554c545241574944450a01c402031cf347100403011f1312230907078301000067030c001000081a003a801871382d40582c450072105300001e8c0ad08a20e02d10103e9600721053000018295900a0a038274030203a0072105300001a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000067
|
||||
eDP-1 00ffffffffffff0009e5b40c0000000034210104a51d1378070aa5a7554b9f250c505400000001010101010101010101010101010101119140a0b0807470302036001dbe1000001a000000fd001e78f4f44a010a202020202020000000fe00424f45204e4a0a202020202020000000fc004e4531333541314d2d4e59310a023170207902002000139a0e00b40c000000003417074e4531334e593121001d220b6c07400b8007886efa54b8749f56820c023554d05fd05f483512782200144c550b883f0b9f002f001f007f077300020005002500094c550b4c550b1e7880810013721a000003011e7800006a426a427800000000000000000000000000004f907020790000260009020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003690
|
||||
|
|
@ -68,27 +68,19 @@ bind -M insert \cn down-or-search
|
|||
bind -M visual \cn down-or-search
|
||||
|
||||
## Sesh keybindings: keybinding: C-\
|
||||
# if functions -q fish_vi_key_bindings
|
||||
# bind -M default \x1c sesh-list
|
||||
# bind -M insert \x1c sesh-list
|
||||
# else
|
||||
# bind \x1c sesh-list
|
||||
# end
|
||||
|
||||
## Sesh keybindings: keybinding: C-]
|
||||
if functions -q fish_vi_key_bindings
|
||||
bind -M default \c] sesh-list
|
||||
bind -M insert \c] sesh-list
|
||||
bind -M default \x1c sesh-list
|
||||
bind -M insert \x1c sesh-list
|
||||
else
|
||||
bind \c] sesh-list
|
||||
bind \x1c sesh-list
|
||||
end
|
||||
|
||||
# Keybinding: C-]
|
||||
# if functions -q fish_vi_key_bindings
|
||||
# bind -M default \c] sesh-sessions
|
||||
# bind -M insert \c] sesh-sessions
|
||||
# else
|
||||
# bind \c] sesh-sessions
|
||||
# end
|
||||
if functions -q fish_vi_key_bindings
|
||||
bind -M default \c] sesh-sessions
|
||||
bind -M insert \c] sesh-sessions
|
||||
else
|
||||
bind \c] sesh-sessions
|
||||
end
|
||||
|
||||
alias vim nvim
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
command = /etc/profiles/per-user/rayandrew/bin/fish --login --interactive
|
||||
# gtk-single-instance = true
|
||||
gtk-single-instance = true
|
||||
gtk-titlebar = false
|
||||
window-decoration = server
|
||||
quit-after-last-window-closed = true
|
||||
|
|
@ -56,8 +56,6 @@ theme = noctis-azureus
|
|||
|
||||
keybind = all:ctrl+shift+period=text:\x1b\x1f\x4c\x23\x1f
|
||||
# keybind = shift+enter=text:\n
|
||||
# keybind = ctrl+\=text:\x1c
|
||||
# keybind = ctrl+\=spawn:sesh-list
|
||||
keybind = shift+enter=text:\x1b\r
|
||||
keybind = ctrl+left_bracket=text:\x1b
|
||||
# keybind = ctrl+a=text:\x01
|
||||
|
|
|
|||
|
|
@ -1,56 +0,0 @@
|
|||
# Sioyek user preferences
|
||||
# Noctis Azureus Ghostty theme
|
||||
|
||||
# Precise hex to RGB (0.0-1.0) conversions:
|
||||
# #051b29 -> 5/255=0.0196, 27/255=0.1059, 41/255=0.1608
|
||||
# #041520 -> 4/255=0.0157, 21/255=0.0824, 32/255=0.1255
|
||||
# #becfda -> 190/255=0.7451, 207/255=0.8118, 218/255=0.8549
|
||||
# #49e9a6 -> 73/255=0.2863, 233/255=0.9137, 166/255=0.6510
|
||||
# #e4b781 -> 228/255=0.8941, 183/255=0.7176, 129/255=0.5059
|
||||
# #49ace9 -> 73/255=0.2863, 172/255=0.6745, 233/255=0.9137
|
||||
|
||||
# Background - deep blue #051b29
|
||||
background_color 0.0196 0.1059 0.1608
|
||||
dark_mode_background_color 0.0196 0.1059 0.1608
|
||||
dark_mode_contrast 1.0
|
||||
|
||||
# Custom color mode (toggle with Ctrl+r)
|
||||
custom_background_color 0.0196 0.1059 0.1608
|
||||
custom_text_color 0.7451 0.8118 0.8549
|
||||
|
||||
# Search highlight (green #49e9a6)
|
||||
search_highlight_color 0.2863 0.9137 0.6510
|
||||
|
||||
# Link color (blue #49ace9)
|
||||
link_highlight_color 0.2863 0.6745 0.9137
|
||||
|
||||
# Text selection/highlight (yellow #e4b781)
|
||||
text_highlight_color 0.8941 0.7176 0.5059
|
||||
|
||||
# Page separator
|
||||
page_separator_width 2
|
||||
page_separator_color 0.1569 0.2078 0.2431
|
||||
|
||||
# Status bar - darker blue #041520
|
||||
ui_background_color 0.0157 0.0824 0.1255
|
||||
ui_text_color 0.7451 0.8118 0.8549
|
||||
|
||||
# Startup - enable synctex by default, start in white mode (toggle dark with C-r or C-i)
|
||||
should_launch_new_window 0
|
||||
# startup_commands toggle_custom_color;toggle_synctex
|
||||
startup_commands toggle_synctex
|
||||
|
||||
# Smooth scrolling
|
||||
smooth_scroll_speed 3.0
|
||||
smooth_scroll_drag 2500
|
||||
|
||||
# Zoom
|
||||
default_zoom_level 1.0
|
||||
zoom_inc_factor 1.2
|
||||
|
||||
# Inverse search - click PDF to jump to Neovim source
|
||||
# %1 = filename, %2 = line number
|
||||
inverse_search_command /home/rayandrew/dotfiles/bin/nvim-vimtex-callback %2 %1
|
||||
|
||||
# Control+click triggers synctex inverse search
|
||||
control_click_command synctex_under_cursor
|
||||
|
|
@ -154,7 +154,6 @@
|
|||
inputs.zen-browser.packages."${system}".twilight
|
||||
chromium
|
||||
arandr
|
||||
autorandr
|
||||
seahorse # gnome keyring
|
||||
xfce.thunar
|
||||
xfce.thunar-volman
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
pkgs,
|
||||
inputs,
|
||||
system,
|
||||
dots,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
|
@ -20,7 +19,6 @@ in
|
|||
xdg.configFile."i3status/config".source = pkgs.replaceVars ./i3status.config {
|
||||
inherit (colors) green warning error;
|
||||
};
|
||||
xdg.configFile."autorandr".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/autorandr";
|
||||
services.picom = {
|
||||
enable = true;
|
||||
};
|
||||
|
|
@ -90,7 +88,7 @@ in
|
|||
home.pointerCursor = {
|
||||
package = pkgs.adwaita-icon-theme;
|
||||
name = "Adwaita";
|
||||
# size = 32;
|
||||
size = 32;
|
||||
x11.enable = true;
|
||||
};
|
||||
xsession = {
|
||||
|
|
@ -154,7 +152,6 @@ in
|
|||
enable = true;
|
||||
config = {
|
||||
inherit modifier terminal;
|
||||
focus.followMouse = false;
|
||||
fonts = {
|
||||
names = [ "SpaceMono Nerd Font" ];
|
||||
size = 10.0;
|
||||
|
|
@ -309,11 +306,6 @@ in
|
|||
background = colors.error;
|
||||
text = colors.fg;
|
||||
};
|
||||
bindingMode = {
|
||||
border = colors.bar_bg;
|
||||
background = colors.bar_bg;
|
||||
text = colors.warning;
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
|
|
|
|||
|
|
@ -120,8 +120,6 @@
|
|||
config.lib.file.mkOutOfStoreSymlink "${dots}/config/direnv/direnv.toml";
|
||||
xdg.configFile."sesh".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/sesh";
|
||||
xdg.configFile."yazi".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/yazi";
|
||||
xdg.configFile."fish/fish_plugins".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "${dots}/config/fish/fish_plugins";
|
||||
xdg.configFile."spotify-player".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "${dots}/config/spotify-player";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -22,20 +22,12 @@
|
|||
}
|
||||
# Linux uses ~/.config/sioyek
|
||||
(lib.mkIf pkgs.stdenv.isLinux {
|
||||
xdg.configFile."sioyek/keys_user.config".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "${dots}/config/sioyek/keys_user.config";
|
||||
xdg.configFile."sioyek/prefs_user.config".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "${dots}/config/sioyek/prefs_user.linux.config";
|
||||
# xdg.configFile."sioyek".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/sioyek";
|
||||
xdg.configFile."sioyek".source = config.lib.file.mkOutOfStoreSymlink "${dots}/config/sioyek";
|
||||
})
|
||||
# macOS uses ~/Library/Application Support/sioyek
|
||||
(lib.mkIf pkgs.stdenv.isDarwin {
|
||||
home.file."Library/Application Support/sioyek/keys_user.config".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "${dots}/config/sioyek/keys_user.config";
|
||||
home.file."Library/Application Support/sioyek/prefs_user.config".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "${dots}/config/sioyek/prefs_user.darwin.config";
|
||||
# home.file."Library/Application Support/sioyek".source =
|
||||
# config.lib.file.mkOutOfStoreSymlink "${dots}/config/sioyek";
|
||||
home.file."Library/Application Support/sioyek".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "${dots}/config/sioyek";
|
||||
})
|
||||
]
|
||||
);
|
||||
|
|
|
|||
|
|
@ -51,7 +51,6 @@
|
|||
hm.home.packages = with pkgs; [
|
||||
vscode
|
||||
claude-code
|
||||
codex
|
||||
];
|
||||
|
||||
# home manager
|
||||
|
|
|
|||
Loading…
Reference in a new issue