diff --git a/bootstrap/set_symlink_unix.bash b/bootstrap/set_symlink_unix.bash index f693c70..39cfbe7 100644 --- a/bootstrap/set_symlink_unix.bash +++ b/bootstrap/set_symlink_unix.bash @@ -8,7 +8,6 @@ mkdir -p $XDG_CONFIG_HOME/conda $XDG_CONFIG_HOME/git $XDG_CONFIG_HOME/ideavim $X mkdir -p ~/.config/zellij ~/.config/yazi ~/.config/glow # mkdir -p $WAKATIME_HOME # mkdir -p $XDG_STATE_HOME/vim/undo $XDG_STATE_HOME/vim/backup $XDG_STATE_HOME/vim/swap $XDG_STATE_HOME/vim/view -mkdir -p $HOME/Obsidian # $DOTFILES/common ln -sf $DOTFILES/common/condarc.yaml $XDG_CONFIG_HOME/conda/.condarc # ln -sf $DOTFILES/common/gitconfig $XDG_CONFIG_HOME/git/config @@ -19,7 +18,6 @@ ln -sf $DOTFILES/common/ideavimrc $XDG_CONFIG_HOME/ideavim/ideavimrc ln -sf $DOTFILES/common/lesskey $XDG_CONFIG_HOME/lesskey ln -sf $DOTFILES/common/npmrc $NPM_CONFIG_USERCONFIG ln -sf $DOTFILES/common/NuGet.Config $XDG_CONFIG_HOME/NuGet/NuGet.Config -ln -sf $DOTFILES/common/obsidian.vimrc $HOME/Obsidian/.obsidian.vimrc ln -sf $DOTFILES/common/pip.conf $XDG_CONFIG_HOME/pip/pip.conf ln -sf $DOTFILES/common/tmux.conf $XDG_CONFIG_HOME/tmux/tmux.conf ln -sf $DOTFILES/common/vimrc $XDG_CONFIG_HOME/vim/vimrc @@ -32,7 +30,7 @@ ln -sf $DOTFILES/tools/yazi/config/yazi.toml ~/.config/yazi/yazi.toml ln -sf $DOTFILES/tools/fish ~/.config -if [ $(uname) = "Darwin"]; then +if [ $(uname) = "Darwin" ]; then mkdir -p ~/.config/karabiner $XDG_CONFIG_HOME/skhd $XDG_CONFIG_HOME/yabai $XDG_CONFIG_HOME/sketchybar ln -sf $DOTFILES/platforms/mac/karabiner/karabiner.json ~/.config/karabiner/karabiner.json ln -sf $DOTFILES/platforms/mac/skhdrc $XDG_CONFIG_HOME/skhd/skhdrc diff --git a/common/condarc.yaml b/common/condarc.yaml index c589efc..e2000b1 100644 --- a/common/condarc.yaml +++ b/common/condarc.yaml @@ -1,7 +1,12 @@ -# $XDG_CONFIG_HOME/conda/condarc.yaml -# ================================================================== -# New-Item -ItemType SymbolicLink -Path $Env:XDG_CONFIG_HOME\conda\.condarc -Target $DOTFILES\.config\conda\condarc.yaml +# $DOTFILES/common/condarc.yaml +# Date: 2024-12-22 +# Author: js0ny + +# Location: +# $XDG_CONFIG_HOME/conda/.condarc +# Linking: # ln -s $DOTFILES/.config/conda/condarc.yaml $XDG_CONFIG_HOME/conda/.condarc -# ================================================================== +# ================================================================================ +# Reference: # https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html auto_activate_base: false diff --git a/common/gitconfig.example b/common/gitconfig.example index b161479..234d58a 100644 --- a/common/gitconfig.example +++ b/common/gitconfig.example @@ -1,14 +1,19 @@ -# $XDG_CONFIG_HOME/git/config -# %USERPROFILE%\.gitconfig # No XDG support on Windows -# ln -sf $DOTFILES/.config/git/.gitconfig $XDG_CONFIG_HOME/git/config -# New-Item -ItemType SymbolicLink -Path "$Env:XDG_CONFIG_HOME\git\config" -Target "$DOTFILES\.config\git\.gitconfig" -[user] +# $DOTFILES/common/gitconfig.example +# Date: 2024-12-22 +# Author: js0ny + +# Location: +# Windows: %USERPROFILE%\.gitconfig +# *nix: ~/.config/git/config +# Linking: (Note that this file is an example, only copy this then edit) +# cp $DOTFILES/common/gitconfig.example ~/.config/git/config +[user] # Modify the name and email name = whoami email = whoami@example.com [core] editor = nvim pager = delta - autocrlf = input + autocrlf = input # Force End of Line in different platforms [interactive] diffFilter = delta --color-only [delta] @@ -19,5 +24,5 @@ smudge = git-lfs smudge -- %f process = git-lfs filter-process required = true -[url "git@github.com:"] - insteadOf = https://github.com/ +# [url "git@github.com:"] # Force ssh +# insteadOf = https://github.com/ diff --git a/common/glow.yaml b/common/glow.yaml index 30de003..8c813e7 100644 --- a/common/glow.yaml +++ b/common/glow.yaml @@ -1,5 +1,10 @@ -# ~/.config/glow/glow.yaml -# ln -sf $DOTFILES/glow/glow.yaml ~/.config/glow/glow.yaml +# $DOTFILES/common/glow.yaml +# Date: 2024-12-22 +# Author: js0ny + +# Location: +# ~/.config/glow/config.yml +# ln -sf $DOTFILES/glow/glow.yaml ~/.config/glow/config.yml # style name or JSON path (default "auto") style: "auto" # mouse support (TUI-mode only) diff --git a/common/haskeline b/common/haskeline index 66ff3be..bf0b6cd 100644 --- a/common/haskeline +++ b/common/haskeline @@ -1 +1 @@ -editMode: Vi \ No newline at end of file +editMode: Vi diff --git a/common/ideavimrc b/common/ideavimrc index 789945b..9e0505c 100644 --- a/common/ideavimrc +++ b/common/ideavimrc @@ -1,6 +1,12 @@ -"$XDG_CONFIG_HOME/ideavim/ideavimrc -" New-Item -ItemType SymbolicLink -Path ~\.ideavimrc -Target $DOTFILES\.config\ideavim\ideavimrc.vimrc -" ln -sf $DOTFILES/.config/ideavim/ideavimrc.vimrc $XDG_CONFIG_HOME/ideavim/ideavimrc +" $DOTFILES/common/ideavimrc +" Date: 2024-12-22 +" Author: js0ny + +" Location: +" $XDG_CONFIG_HOME/ideavim/ideavimrc +" Linking: +" ln -sf $DOTFILES/common/ideavimrc $XDG_CONFIG_HOME/ideavim/ideavimrc + """ Basic Configs """ let mapleader = " " " set to diff --git a/common/inputrc b/common/inputrc index 9cffebe..9611b92 100644 --- a/common/inputrc +++ b/common/inputrc @@ -1,4 +1,13 @@ +# $DOTFILES/common/gitconfig.example +# Date: 2024-12-22 +# Author: js0ny +# GNU Readline config file, works for programs that use that library +# e.g. Python REPL, Lua REPL, Bash on Linux + +# Location: # $XDG_CONFIG_HOME/readline/inputrc +# Linking: +# ln -sf $DOTFILES/common/inputrc $XDG_CONFIG_HOME/readline/inputrc # Colemak Key Remaps set editing-mode vi diff --git a/common/lesskey b/common/lesskey index eee8fa7..8eb0c4f 100644 --- a/common/lesskey +++ b/common/lesskey @@ -1,6 +1,16 @@ -# $XDG_CONFIG_HOME/lesskey -- less options -# ln -sf $DOTFILES/.config/lesskey $XDG_CONFIG_HOME/lesskey +# $DOTFILES/common/lesskey +# Date: 2024-12-22 +# Author: js0ny +# Less the pager. + +# Location: +# $XDG_CONFIG_HOME/lesskey +# Or specified by the environment variable $LESSKEYIN +# Linking: +# ln -sf $DOTFILES/common/lesskey ~/.config/lesskey +# =========================================================== # work for less -V > 582, for mac, use brew install less to override the system less +# In Windows (current version), the default pager is `more`, should be specifed to `less` by `$Env:Pager = less` # Format: key action diff --git a/common/npmrc b/common/npmrc index 5f0ed17..97aa418 100644 --- a/common/npmrc +++ b/common/npmrc @@ -1,6 +1,14 @@ +# $DOTFILES/common/npmrc +# Date: 2024-12-22 +# Author: js0ny + +# Location: +# $NPM_CONFIG_USERCONFIG +# ~/.npmrc (Default location) +# Linking: # export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc -# =========================================================== -# $XDG_CONFIG_HOME/npm/npmrc # ln -s $DOTFILES/.config/npm/npmrc $NPM_CONFIG_USERCONFIG # New-Item -ItemType SymbolicLink -Path $env:NPM_CONFIG_USERCONFIG -Value $env:DOTFILES/.config/npm/npmrc + + # registry=https://registry.npmmirror.com diff --git a/common/tmux.conf b/common/tmux.conf index d603667..4323f06 100644 --- a/common/tmux.conf +++ b/common/tmux.conf @@ -1,5 +1,12 @@ +# $DOTFILES/common/tmux.conf +# Date: 2024-12-22 +# Author: js0ny +# `tmux` - Terminal Multiplexer + +# Location: # $XDG_CONFIG_HOME/tmux/tmux.conf -# ln -sf $DOTFILES/.config/tmux/tmux.conf $XDG_CONFIG_HOME/tmux/tmux.conf +# Linking: +# ln -sf $DOTFILES/common/tmux.conf $XDG_CONFIG_HOME/tmux/tmux.conf # Prefix # ----------------- @@ -14,7 +21,7 @@ set-option -g allow-rename on set-option -g alternate-screen on set-option -g visual-activity on set-option -g pane-border-style fg=colour244 -set-option -g pane-activity-border-style fg=colour239 +# set-option -g pane-activity-border-style fg=colour239 # Index # ----------------- @@ -54,17 +61,17 @@ bind ` resize-pane -Z # Status Bar # ----------------- -# set -g status-position top -# set-option -g status-bg black -# set-option -g status-fg white -# set-option -g status-left '#[fg=green][#S] ' -# setw -g window-status-current-format '#[fg=colour236,bg=colour39] #I #W ' - set -g status-position top -set -g @catppuccin_flavor "frappe" -run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux -set -g status-right-length 100 -set -g status-left-length 100 -set -g status-left "" -set -g status-right "#{E:@catppuccin_status_application}" -set -ag status-right "#{E:@catppuccin_status_session}" +set-option -g status-bg black +set-option -g status-fg white +set-option -g status-left '#[fg=green][#S] ' +setw -g window-status-current-format '#[fg=colour236,bg=colour39] #I #W ' + +# set -g status-position top +# set -g @catppuccin_flavor "frappe" +# run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux +# set -g status-right-length 100 +# set -g status-left-length 100 +# set -g status-left "" +# set -g status-right "#{E:@catppuccin_status_application}" +# set -ag status-right "#{E:@catppuccin_status_session}" diff --git a/common/zellij.config.kdl b/common/zellij.config.kdl index f08db80..5114373 100644 --- a/common/zellij.config.kdl +++ b/common/zellij.config.kdl @@ -13,9 +13,9 @@ keybinds { } pane { bind "h" "Left" { MoveFocus "Left"; } - bind "i" "Right" { MoveFocus "Right"; } bind "n" "Down" { MoveFocus "Down"; } bind "e" "Up" { MoveFocus "Up"; } + bind "i" "Right" { MoveFocus "Right"; } bind "p" { SwitchFocus; } } locked { diff --git a/platforms/linux/.gitkeep b/platforms/linux/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/platforms/linux/hyprland/code-flags.conf b/platforms/linux/hyprland/code-flags.conf new file mode 100644 index 0000000..0119c79 --- /dev/null +++ b/platforms/linux/hyprland/code-flags.conf @@ -0,0 +1,12 @@ +# $DOTFILES/platforms/linux/hyprland/code-flags.conf +# Date: 2024-12-22 +# Author: js0ny +# Force VSCode to use Wayland + +# Location: +# ~/.config/code-flags.conf +# Linking: +# ln -sf $DOTFILES/platforms/linux/hyprland/code-flags.conf ~/.config/ + +--enable-features=UseOzonePlatform +--ozone-platform=wayland diff --git a/platforms/linux/hyprland/electron-flags.conf b/platforms/linux/hyprland/electron-flags.conf new file mode 100644 index 0000000..560f083 --- /dev/null +++ b/platforms/linux/hyprland/electron-flags.conf @@ -0,0 +1,13 @@ +# $DOTFILES/platforms/linux/hyprland/electron-flags.conf +# Date: 2024-12-22 +# Author: js0ny +# Force electron apps to use Wayland + +# Location: +# ~/.config/electron-flags.conf +# Linking: +# ln -sf $DOTFILES/platforms/linux/hyprland/electron-flags.conf ~/.config/ + +--enable-features=UseOzonePlatform +--ozone-platform=wayland +--enable-icd diff --git a/platforms/linux/hyprland/hypr/hyprland.conf b/platforms/linux/hyprland/hypr/hyprland.conf new file mode 100644 index 0000000..6a37019 --- /dev/null +++ b/platforms/linux/hyprland/hypr/hyprland.conf @@ -0,0 +1,315 @@ +# $DOTFILES/platforms/linux/hyprland/hypr/hyprland.conf +# Date: 2024-12-22 +# Author: js0ny +# Hyprland Window Manager Configuration + +# Location: +# $XDG_CONFIG_HOME/hypr/hyprland.conf +# Linking: (Link the whole `hypr` directory) +# ln -sf $DOTFILES/platforms/linux/hyprland/hypr $XDG_CONFIG_HOME/hypr + +# ####################################################################################### +# AUTOGENERATED HYPRLAND CONFIG. +# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hyprland.conf AND EDIT IT, +# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. +# ####################################################################################### + +autogenerated = 0 # remove this line to remove the warning + +# This is an example Hyprland config file. +# Refer to the wiki for more information. +# https://wiki.hyprland.org/Configuring/ + +# Please note not all available settings / options are set here. +# For a full list, see the wiki + +# You can split this configuration into multiple files +# Create your files separately and then link them to this file like this: +# source = ~/.config/hypr/myColors.conf +# + +xwayland { + force_zero_scaling = true +} + + +################ +### MONITORS ### +################ + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=,preferred,auto,auto + + +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = kitty +$fileManager = dolphin +$menu = wofi --show drun + + +################# +### AUTOSTART ### +################# + +# Autostart necessary processes (like notifications daemons, status bars, etc.) +# Or execute your favorite apps at launch like this: + +# exec-once = $terminal +# exec-once = nm-applet & +exec-once = waybar & hyprpaper & mako & systemctl --user start hyprpolkitagent + + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + + +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 5 + gaps_out = 20 + + border_size = 2 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = false + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 10 + + # Change transparency of focused and unfocused windows + active_opacity = 1.0 + inactive_opacity = 1.0 + + shadow { + enabled = true + range = 4 + render_power = 3 + color = rgba(1a1a1aee) + } + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = true + size = 3 + passes = 1 + + vibrancy = 0.1696 + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + enabled = yes, please :) + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = easeOutQuint,0.23,1,0.32,1 + bezier = easeInOutCubic,0.65,0.05,0.36,1 + bezier = linear,0,0,1,1 + bezier = almostLinear,0.5,0.5,0.75,1.0 + bezier = quick,0.15,0,0.1,1 + + animation = global, 1, 10, default + animation = border, 1, 5.39, easeOutQuint + animation = windows, 1, 4.79, easeOutQuint + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.49, linear, popin 87% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 1, 1.94, almostLinear, fade + animation = workspacesIn, 1, 1.21, almostLinear, fade + animation = workspacesOut, 1, 1.94, almostLinear, fade +} + +# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ +# "Smart gaps" / "No gaps when only" +# uncomment all if you wish to use that. +# workspace = w[tv1], gapsout:0, gapsin:0 +# workspace = f[1], gapsout:0, gapsin:0 +# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1] +# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1] +# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1] +# windowrulev2 = rounding 0, floating:0, onworkspace:f[1] + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this +} + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +master { + new_status = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#misc +misc { + force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( +} + + +############# +### INPUT ### +############# + +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = false + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#gestures +gestures { + workspace_swipe = false +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more +device { + name = epic-mouse-v1 + sensitivity = -0.5 +} + + +################### +### KEYBINDINGS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ +$mainMod = SUPER # Sets "Windows" key as main modifier + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, R, exec, $terminal +bind = $mainMod, Q, killactive, +bind = $mainMod, M, exit, +bind = $mainMod, F, exec, $fileManager +bind = $mainMod, V, togglefloating, +bind = $mainMod, space, exec, $menu +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, X, togglesplit, # dwindle + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d +bind = $mainMod, h, movefocus, l +bind = $mainMod, i, movefocus, r +bind = $mainMod, e, movefocus, u +bind = $mainMod, n, movefocus, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Laptop multimedia keys for volume and LCD brightness +bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ +bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+ +bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ + +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + +# Ignore maximize requests from apps. You'll probably like this. +windowrulev2 = suppressevent maximize, class:.* + +# Fix some dragging issues with XWayland +windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 diff --git a/platforms/linux/hyprland/hypr/hyprpaper.conf b/platforms/linux/hyprland/hypr/hyprpaper.conf new file mode 100644 index 0000000..51d9aa6 --- /dev/null +++ b/platforms/linux/hyprland/hypr/hyprpaper.conf @@ -0,0 +1,12 @@ +# $DOTFILES/platforms/linux/hyprland/hypr/hyprpaper.conf +# Date: 2024-12-22 +# Author: js0ny +# Hyprland Wallpaper autoloader + +# Location: +# $XDG_CONFIG_HOME/hypr/hyprpaper.conf +# Linking: (Link the whole `hypr` directory) +# ln -sf $DOTFILES/platforms/linux/hyprland/hypr $XDG_CONFIG_HOME/hypr + +preload = ~/Pictures/Wallpaper/current.jpg +wallpaper = DP-2, ~/Pictures/Wallpaper/current.jpg diff --git a/platforms/linux/dolphinrc b/platforms/linux/kde/dolphinrc similarity index 73% rename from platforms/linux/dolphinrc rename to platforms/linux/kde/dolphinrc index 4bc015d..61043b0 100644 --- a/platforms/linux/dolphinrc +++ b/platforms/linux/kde/dolphinrc @@ -1,7 +1,16 @@ +# $DOTFILES/platforms/linux/kde/dolphinrc +# Date: 2024-12-22 +# Author: js0ny +# Dolphin - KDE File Explorer + +# Location: +# $XDG_CONFIG_HOME/dolphinrc +# Linking: +# ln -sf $DOTFILES/platforms/linux/kde/dolphinrc $XDG_CONFIG_HOME/dolphinrc + [General] Version=202 ViewPropsTimestamp=2024,12,10,0,19,35.931 - [IconsMode] PreviewSize=80 diff --git a/platforms/linux/kde/krunnerrc b/platforms/linux/kde/krunnerrc new file mode 100644 index 0000000..e81746a --- /dev/null +++ b/platforms/linux/kde/krunnerrc @@ -0,0 +1,19 @@ +# $DOTFILES/platforms/linux/kde/krunnerrc +# Date: 2024-12-22 +# Author: js0ny +# Krunner Config + +# Location: +# $XDG_CONFIG_HOME/krunnerrc +# Linking: +# ln -sf $DOTFILES/platforms/linux/kde/krunnerrc $XDG_CONFIG_HOME/krunnerrc + +[General] +FreeFloating=true +historyBehavior=ImmediateCompletion + +[Plugins][Favorites] +plugins=krunner_dictionary,krunner_services,krunner_systemsettings + +[Runners][krunner_dictionary] +triggerWord=d diff --git a/platforms/linux/krunnerrc b/platforms/linux/krunnerrc deleted file mode 100644 index c180753..0000000 --- a/platforms/linux/krunnerrc +++ /dev/null @@ -1,9 +0,0 @@ -[General] -FreeFloating=true -historyBehavior=ImmediateCompletion - -[Plugins][Favorites] -plugins=krunner_dictionary,krunner_services,krunner_systemsettings - -[Runners][krunner_dictionary] -triggerWord=d diff --git a/platforms/linux/zshrc b/platforms/linux/zshrc index 4f81dbe..5fa6f30 100644 --- a/platforms/linux/zshrc +++ b/platforms/linux/zshrc @@ -1,15 +1,13 @@ -# Use powerline -USE_POWERLINE="true" -# Has weird character width -# Example: -#  is not a diamond -HAS_WIDECHARS="false" -alias open=dolphin -# Source manjaro-zsh-configuration -if [[ -e /usr/share/zsh/manjaro-zsh-config ]]; then - source /usr/share/zsh/manjaro-zsh-config +# $DOTFILES/platforms/linux/zshrc +# Date: 2024-12-22 +# Author: js0ny +# Sourced by user's zshrc if is Linux 在用户的 zshrc 中被引用 +# Entry point in $DOTFILES/tools/zsh/common.zshrc (入口点) + + +if [ -n "$WAYLAND_DISPLAY" ]; then + alias clip="wl-copy" + alias paste="wl-paste" +else [ -n "$DISPLAY" ]; then + alias clip="xclip" fi -# Use manjaro zsh prompt -# if [[ -e /usr/share/zsh/manjaro-zsh-prompt ]]; then -# source /usr/share/zsh/manjaro-zsh-prompt -# fi diff --git a/platforms/mac/zshrc b/platforms/mac/zshrc index 43661fd..4a4dd35 100644 --- a/platforms/mac/zshrc +++ b/platforms/mac/zshrc @@ -6,7 +6,6 @@ # macOS # -alias xclip="pbcopy" alias clip="pbcopy" alias paste="pbpaste" diff --git a/platforms/wsl/winterop.zsh b/platforms/wsl/winterop.zsh index e053174..1d074a9 100644 --- a/platforms/wsl/winterop.zsh +++ b/platforms/wsl/winterop.zsh @@ -6,7 +6,7 @@ export FILE_EXPLORER="explorer.exe" # Directory Opus alias clip="clip.exe" -alias xclip="clip.exe" +alias clip="clip.exe" alias paste='pwsh.exe -NoProfile -Command "Get-Clipboard"' alias dark-mode='pwsh.exe -Command "dark-mode" 2>&1 /dev/null' alias winfetch='pwsh.exe -NoProfile -Command "winfetch"' diff --git a/tools/fish/conf.d/alias.fish b/tools/fish/conf.d/alias.fish index a234a81..5a62f5f 100644 --- a/tools/fish/conf.d/alias.fish +++ b/tools/fish/conf.d/alias.fish @@ -1,4 +1,11 @@ +# $DOTFILES/tools/fish/conf.d/alias.fish +# Date: 2024-12-22 +# Author: js0ny +# Location: +# ~/.config/fish/conf.d/alias.fish +# Linking: Link the whole directory for submodules +# ln -sf $DOTFILES/tools/fish ~/.config/fish # Powershell equivalent abbr --add ni touch @@ -8,7 +15,7 @@ abbr --add ii open # Editors # abbr --add v nvim abbr --add c code -alias sv="sudo vim -u ~/.config/vim/vimrc" +alias sv="sudo vim -u ~/.dotfiles/common/vim.noxdg.vimrc" alias sn="sudo nvim -u ~/.config/nvim/init.lua" # Dev # diff --git a/tools/fish/conf.d/keymap.fish b/tools/fish/conf.d/keymap.fish index a6526cb..2969ffe 100644 --- a/tools/fish/conf.d/keymap.fish +++ b/tools/fish/conf.d/keymap.fish @@ -1,10 +1,20 @@ +# $DOTFILES/tools/fish/conf.d/keymap.fish +# Date: 2024-12-22 +# Author: js0ny + +# Location: +# ~/.config/fish/conf.d/keymap.fish +# Linking: Link the whole directory for submodules +# ln -sf $DOTFILES/tools/fish ~/.config/fish + + fish_vi_key_bindings # Colemak hnei # ^ -# n -# < h i > # e +# < h i > +# n # v # bind -M default 'h' backward-char bind -M default 'n' down-or-search @@ -14,3 +24,5 @@ bind -M default 'i' forward-char # Similar position to [i] in QWERTY bind -M default -m insert l repaint-mode bind -M default -m insert L beginning-of-line repaint-mode + +# TODO: Add more key bindings here diff --git a/tools/fish/conf.d/navi.fish b/tools/fish/conf.d/navi.fish index 2f8f6b1..e247aa7 100644 --- a/tools/fish/conf.d/navi.fish +++ b/tools/fish/conf.d/navi.fish @@ -1,3 +1,11 @@ +# $DOTFILES/tools/fish/conf.d/navi.fish +# Date: 2024-12-22 +# Author: js0ny + +# Location: +# ~/.config/fish/conf.d/navi.fish +# Linking: Link the whole directory for submodules +# ln -sf $DOTFILES/tools/fish ~/.config/fish alias ..="cd .." diff --git a/tools/fish/conf.d/prompt.fish b/tools/fish/conf.d/prompt.fish index bde5d56..0760923 100644 --- a/tools/fish/conf.d/prompt.fish +++ b/tools/fish/conf.d/prompt.fish @@ -1,3 +1,11 @@ +# $DOTFILES/tools/fish/conf.d/prompt.fish +# Date: 2024-12-22 +# Author: js0ny + +# Location: +# ~/.config/fish/conf.d/prompt.fish +# Linking: Link the whole directory for submodules +# ln -sf $DOTFILES/tools/fish ~/.config/fish if command -v starship > /dev/null set -gx STARSHIP_CONFIG $DOTFILES/tools/starship/starship_fish.toml diff --git a/tools/nvim/lua/plugins/init.lua b/tools/nvim/lua/plugins/init.lua index 7fa8521..866228d 100644 --- a/tools/nvim/lua/plugins/init.lua +++ b/tools/nvim/lua/plugins/init.lua @@ -1,17 +1,21 @@ -- Entry point of the plugin manager local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" -if not vim.loop.fs_stat(lazypath) then - vim.fn.system({ - "git", - "clone", - "--filter=blob:none", - "https://github.com/folke/lazy.nvim.git", - "--branch=stable", - lazypath, - }) +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end end vim.opt.rtp:prepend(lazypath) + require("lazy").setup({ { import = "plugins.appearance" }, { import = "plugins.completion" }, diff --git a/tools/zsh/mod/alias.zsh b/tools/zsh/mod/alias.zsh index 9ca36f7..46d9786 100644 --- a/tools/zsh/mod/alias.zsh +++ b/tools/zsh/mod/alias.zsh @@ -26,7 +26,7 @@ alias pulldots="cd $DOTFILES && git pull" # Editors # alias v=nvim alias c=code -alias sv="sudo vim -u ~/.config/vim/vimrc" +alias sv="sudo vim -u ~/.dotfiles/common/vim.noxdg.vimrc" alias sn="sudo nvim -u ~/.config/nvim/init.lua" # lsd - modern ls