#W# Initial Commit: No Flake Config
9
home/TazUO.desktop
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=TazUO
|
||||
Comment=TazUO Launcher
|
||||
Path=/mnt/fileStorage/TazUOLauncher
|
||||
Exec=/mnt/fileStorage/TazUOLauncher/TazUOLauncher
|
||||
Icon=/mnt/fileStorage/TazUOLauncher/icon.png
|
||||
Terminal=false
|
||||
Categories=Games
|
||||
56
home/config/fish/config.fish
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
if status is-interactive
|
||||
# -------------------------------------------------------------------------
|
||||
# Environment Variables
|
||||
# -------------------------------------------------------------------------
|
||||
set fish_greeting ""
|
||||
set -gx DOTNET_ROOT $HOME/.dotnet
|
||||
fish_add_path $DOTNET_ROOT
|
||||
fish_add_path $DOTNET_ROOT
|
||||
set -gx DOTNET_SYSTEM_NET_DISABLEIPV6 1
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Keybindings
|
||||
# -------------------------------------------------------------------------
|
||||
bind \cd\cd\cd delete-or-exit
|
||||
bind \cf 'ts; commandline -f repaint'
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Shell Aliases
|
||||
# -------------------------------------------------------------------------
|
||||
# NixOS & Home Manager
|
||||
#alias rebuild="sudo nixos-rebuild switch"
|
||||
alias rebuild="nh os switch -f '<nixpkgs/nixos>'"
|
||||
alias hms="home-manager switch"
|
||||
|
||||
# SSH Connections
|
||||
alias sshavatar="ssh warrentyexpired@192.168.88.111"
|
||||
alias sshvaultnas="ssh warrentyexpired@192.168.88.100"
|
||||
alias sshservarr="ssh warrentyexpired@192.168.88.101"
|
||||
alias sshdocker="ssh warrentyexpired@192.168.88.102"
|
||||
alias sshlive="ssh mementoadmin@uo-memento.com"
|
||||
alias sshproxy="ssh warrentyexpired@192.168.88.200"
|
||||
|
||||
# Shortcuts & Utilities
|
||||
alias stff="mpv --autofit=10%"
|
||||
alias s="goto s"
|
||||
alias g="goto g"
|
||||
alias l="goto l"
|
||||
alias mv="mv -i --backup=t"
|
||||
alias cat="bat"
|
||||
|
||||
# eza conditional setup
|
||||
if type -q eza
|
||||
alias ls='eza --color=always --group-directories-first --icons'
|
||||
alias ll='eza -a --color=always --group-directories-first --icons'
|
||||
alias la='eza -al --group-directories-first --icons'
|
||||
alias lt='eza -aT --level=2 --group-directories-first --icons'
|
||||
alias l.='eza -ad .* --group-directories-first --icons'
|
||||
else
|
||||
printf "You may want to install eza\n"
|
||||
end
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Shell Abbreviations
|
||||
# -------------------------------------------------------------------------
|
||||
abbr -a sshracknerd 'mosh -p 60001 192.227.229.130 --ssh="ssh -p 5522"'
|
||||
end
|
||||
4
home/config/fish/fish_variables
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR __fish_initialized:4300
|
||||
SETUVAR fish_user_paths:/home/warrentyexpired/\x2edotnet
|
||||
28
home/config/fish/functions/fish_prompt.fish
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
function fish_prompt
|
||||
set -l white (set_color white)
|
||||
set -l brwhite (set_color brwhite)
|
||||
set -l green (set_color green)
|
||||
set -l red (set_color red)
|
||||
set -l blue (set_color blue)
|
||||
|
||||
# Line 1: ┌─ [user] @ [host]
|
||||
echo -s $white"┌─ ["$green$USER$white"] "$brwhite"@ " $white"["$red$hostname$white"]"
|
||||
|
||||
# Line 2: ├─ [directory]
|
||||
set -l full_path (string replace -r "^$HOME" "~" $PWD)
|
||||
echo -s $white"├─ ["$blue$full_path$white"]"
|
||||
|
||||
# Line 3: └─ [(git_branch)] or [$]
|
||||
echo -n $white"└─ ["
|
||||
set -l git_info (gitinfo 2>/dev/null)
|
||||
if test -n "$git_info"
|
||||
echo -n $git_info
|
||||
else
|
||||
echo -n $brwhite"\$"
|
||||
end
|
||||
echo -n $white"]"
|
||||
|
||||
# Final prompt symbol and reset
|
||||
echo -n $brwhite" "
|
||||
set_color normal
|
||||
end
|
||||
19
home/config/fish/functions/gitinfo.fish
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
function gitinfo
|
||||
if git rev-parse --is-inside-work-tree >/dev/null 2>&1
|
||||
set -l branch (git branch --show-current)
|
||||
set -l staged ""
|
||||
set -l dirty ""
|
||||
set -l untracked ""
|
||||
if not git diff --quiet
|
||||
set dirty (set_color yellow)"*"
|
||||
end
|
||||
if not git diff --cached --quiet
|
||||
set staged (set_color green)"+"
|
||||
end
|
||||
set -l untracked_files (git ls-files --others --exclude-standard)
|
||||
if test -n "$untracked_files"
|
||||
set untracked (set_color red)" *"
|
||||
end
|
||||
echo (set_color magenta)"($branch)"$staged$dirty$untracked(set_color normal)
|
||||
end
|
||||
end
|
||||
78
home/config/fish/functions/goto.fish
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
function goto
|
||||
set -l gotoConfig "$HOME/.config/goto/bookmarks"
|
||||
set -l gotoDir "$HOME/.config/goto"
|
||||
mkdir -p "$gotoDir"
|
||||
touch "$gotoConfig"
|
||||
|
||||
set -l command $argv[1]
|
||||
set -l bookmark_name $argv[2]
|
||||
|
||||
if test -z "$command"
|
||||
echo "Usage: goto s <name> (save current directory)"
|
||||
echo " goto g <name> (go to saved directory)"
|
||||
echo " goto d <name> (delete a bookmark)"
|
||||
echo " goto l (list all bookmarks)"
|
||||
echo " goto e (edit bookmarks file)"
|
||||
return
|
||||
end
|
||||
|
||||
switch $command
|
||||
case s # Save bookmarks
|
||||
if test -z "$bookmark_name"
|
||||
echo "Error: Must provide a bookmark name to save."
|
||||
return 1
|
||||
end
|
||||
sed -i "/^$bookmark_name:/d" "$gotoConfig"
|
||||
echo "$bookmark_name:"(pwd) >> "$gotoConfig"
|
||||
echo "Bookmark $bookmark_name saved to: "(pwd)
|
||||
|
||||
case g # Go to bookmark
|
||||
if test -z "$bookmark_name"
|
||||
echo "Error: Must provide a bookmark name to go to."
|
||||
return 1
|
||||
end
|
||||
set -l target_path (grep "^$bookmark_name:" "$gotoConfig" | cut -d ':' -f 2)
|
||||
if test -z "$target_path"
|
||||
echo "Error: Bookmark $bookmark_name not found."
|
||||
return 1
|
||||
end
|
||||
if test -d "$target_path"
|
||||
cd "$target_path"
|
||||
echo "Jumping to: $target_path"
|
||||
else
|
||||
echo "Error: Directory $target_path does not exist or is not a directory"
|
||||
end
|
||||
|
||||
case d # Delete bookmark
|
||||
if test -z "$bookmark_name"
|
||||
echo "Error: Must provide a bookmark name to delete."
|
||||
return 1
|
||||
end
|
||||
if grep -q "^$bookmark_name:" "$gotoConfig"
|
||||
sed -i "/^$bookmark_name:/d" "$gotoConfig"
|
||||
echo "Bookmark $bookmark_name deleted."
|
||||
else
|
||||
echo "Error: Bookmark $bookmark_name not found."
|
||||
return 1
|
||||
end
|
||||
|
||||
case e # Edit bookmarks file
|
||||
if set -q EDITOR
|
||||
$EDITOR "$gotoConfig"
|
||||
else
|
||||
nano "$gotoConfig"
|
||||
end
|
||||
|
||||
case l # List bookmarks
|
||||
if not test -s "$gotoConfig"
|
||||
echo "No bookmarks saved yet."
|
||||
return 0
|
||||
end
|
||||
echo "___ Bookmarks (Stored in: $gotoDir) ___"
|
||||
column -t -s ':' "$gotoConfig"
|
||||
|
||||
case '*'
|
||||
echo "Invalid command: $command"
|
||||
goto # Show usage
|
||||
end
|
||||
end
|
||||
21
home/config/fish/functions/lookfor.fish
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
function lookfor --description "Lookfor (d)irectory, (f)ile (a)ll (pattern)"
|
||||
if test (count $argv) -lt 2
|
||||
echo "Usage: lookfor (f)ile|(d)irectory|(a)ll \"pattern\""
|
||||
return 1
|
||||
end
|
||||
|
||||
set -l type_flag $argv[1]
|
||||
set -l pattern $argv[2]
|
||||
|
||||
switch $type_flag
|
||||
case f
|
||||
find . -type f -name "*$pattern*" 2>/dev/null
|
||||
case d
|
||||
find . -type d -name "*$pattern*" 2>/dev/null
|
||||
case a
|
||||
find . -name "*$pattern*" 2>/dev/null
|
||||
case *
|
||||
echo "Invalid type: $type_flag. Use f for file or d for directory."
|
||||
return 1
|
||||
end
|
||||
end
|
||||
67
home/config/fish/functions/ts.fish
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
function ts --description "Tmux session manager with fuzzy search and quick jump"
|
||||
echo -e ""
|
||||
# 1. Show Active Sessions
|
||||
set -l active_sessions (tmux list-sessions 2>/dev/null)
|
||||
if test -n "$active_sessions"
|
||||
echo -e (set_color 99ff99)" Active Sessions:"(set_color normal)
|
||||
for line in $active_sessions
|
||||
echo -e " $line"
|
||||
end
|
||||
echo ""
|
||||
else
|
||||
echo -e (set_color 555555)"(No active sessions)"(set_color normal)
|
||||
echo ""
|
||||
end
|
||||
|
||||
# 2. Provide choices
|
||||
echo -e (set_color 00afaf)" Select an option:"(set_color normal)
|
||||
echo -e " [1] Pick from active sessions (Fuzzy search)"
|
||||
echo -e " [2] Create NEW custom session"
|
||||
echo -e " [w] Enter Tmuxinator Workspaces"
|
||||
echo -e " [d] Detach from current session"
|
||||
echo -e " [x] Kill a session"
|
||||
echo -e " [Enter] Quick jump to "(set_color -o)"Main"(set_color normal)
|
||||
echo ""
|
||||
|
||||
read -l -P "Choice > " choice
|
||||
switch "$choice"
|
||||
case 1
|
||||
set -l session (tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0 --height=15% --reverse --header="Select Session")
|
||||
if test -n "$session"
|
||||
if set -q TMUX
|
||||
tmux switch-client -t "$session"
|
||||
else
|
||||
tmux attach-session -t "$session"
|
||||
end
|
||||
end
|
||||
case 2
|
||||
read -l -P "Enter name for new session: " new_name
|
||||
if test -n "$new_name"
|
||||
env -u TMUX tmux new-session -d -s "$new_name" 2>/dev/null
|
||||
if set -q TMUX
|
||||
tmux switch-client -t "$new_name"
|
||||
else
|
||||
tmux attach-session -t "$new_name"
|
||||
end
|
||||
end
|
||||
case d D
|
||||
if set -q TMUX; tmux detach-client; else; echo "You aren't in a tmux session!"; end
|
||||
case w W
|
||||
if type -q tmuxinator
|
||||
tmuxinator start Workspace
|
||||
else
|
||||
echo (set_color red)"Error: tmuxinator is not installed."(set_color normal)
|
||||
end
|
||||
case x X
|
||||
set -l session (tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0 --height=15% --reverse --header="Select Session to KILL")
|
||||
if test -n "$session"
|
||||
tmux kill-session -t "$session"
|
||||
echo "Killed session: $session"
|
||||
ts
|
||||
end
|
||||
case "" "*"
|
||||
env -u TMUX tmux new-session -d -s Main 2>/dev/null
|
||||
if set -q TMUX; tmux switch-client -t Main; else; tmux attach-session -t Main; end
|
||||
end
|
||||
commandline -f repaint
|
||||
end
|
||||
49
home/config/ghostty/config.ghostty
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
# Font Configuration
|
||||
font-size = 12
|
||||
|
||||
# Window Configuration
|
||||
# window-decoration = false
|
||||
window-padding-x = 12
|
||||
window-padding-y = 12
|
||||
background-opacity = 0.90
|
||||
background-blur-radius = 32
|
||||
|
||||
# Cursor Configuration
|
||||
cursor-style = block
|
||||
cursor-style-blink = true
|
||||
|
||||
# Scrollback
|
||||
scrollback-limit = 3023
|
||||
|
||||
# Terminal features
|
||||
mouse-hide-while-typing = true
|
||||
copy-on-select = false
|
||||
confirm-close-surface = false
|
||||
|
||||
# Disable annoying copied to clipboard
|
||||
app-notifications = no-clipboard-copy,no-config-reload
|
||||
|
||||
# Key bindings
|
||||
keybind = ctrl+shift+n=new_window
|
||||
keybind = ctrl+t=new_tab
|
||||
keybind = ctrl+plus=increase_font_size:1
|
||||
keybind = ctrl+minus=decrease_font_size:1
|
||||
keybind = ctrl+zero=reset_font_size
|
||||
|
||||
# Material 3 UI elements
|
||||
unfocused-split-opacity = 0.7
|
||||
unfocused-split-fill = #44464f
|
||||
|
||||
# Tab configuration
|
||||
gtk-titlebar = false
|
||||
|
||||
# Shell integration
|
||||
shell-integration = detect
|
||||
shell-integration-features = cursor,sudo,title,no-cursor
|
||||
keybind = shift+enter=text:\n
|
||||
|
||||
# Rando stuff
|
||||
gtk-single-instance = true
|
||||
|
||||
# Dank theme
|
||||
config-file = ./themes/dankcolors
|
||||
22
home/config/ghostty/themes/dankcolors
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
background = #131313
|
||||
foreground = #e2e2e2
|
||||
cursor-color = #eeb1ff
|
||||
selection-background = #662f79
|
||||
selection-foreground = #e2e2e2
|
||||
|
||||
palette = 0=#131313
|
||||
palette = 1=#ff7287
|
||||
palette = 2=#7fffa0
|
||||
palette = 3=#ffdd72
|
||||
palette = 4=#de99f2
|
||||
palette = 5=#673376
|
||||
palette = 6=#eeb1ff
|
||||
palette = 7=#fbefff
|
||||
palette = 8=#a299a5
|
||||
palette = 9=#ff9fad
|
||||
palette = 10=#a5ffbc
|
||||
palette = 11=#ffe9a5
|
||||
palette = 12=#f0bcff
|
||||
palette = 13=#f3c8ff
|
||||
palette = 14=#f7dbff
|
||||
palette = 15=#fdf8ff
|
||||
393
home/config/niri/config.kdl
Executable file
|
|
@ -0,0 +1,393 @@
|
|||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
}
|
||||
numlock
|
||||
}
|
||||
touchpad {
|
||||
tap
|
||||
natural-scroll
|
||||
}
|
||||
mouse {
|
||||
accel-speed 1.0
|
||||
}
|
||||
trackpoint {
|
||||
}
|
||||
}
|
||||
cursor {
|
||||
xcursor-theme "Bibata-Modern-Classic"
|
||||
xcursor-size 24
|
||||
}
|
||||
gestures {
|
||||
hot-corners {
|
||||
off
|
||||
}
|
||||
}
|
||||
layout {
|
||||
gaps 16
|
||||
background-color "transparent"
|
||||
center-focused-column "never"
|
||||
always-center-single-column
|
||||
preset-column-widths {
|
||||
proportion 0.33333
|
||||
proportion 0.5
|
||||
proportion 0.66667
|
||||
}
|
||||
default-column-width { proportion 0.5; }
|
||||
focus-ring {
|
||||
//off
|
||||
width 3
|
||||
active-color "#7fc8ff"
|
||||
inactive-color "#505050"
|
||||
}
|
||||
border {
|
||||
off
|
||||
width 4
|
||||
active-color "#ffc87f"
|
||||
inactive-color "#505050"
|
||||
urgent-color "#9b0000"
|
||||
}
|
||||
shadow {
|
||||
//on
|
||||
//draw-behind-window true
|
||||
softness 30
|
||||
spread 5
|
||||
offset x=0 y=5
|
||||
color "#0007"
|
||||
}
|
||||
struts {
|
||||
}
|
||||
}
|
||||
hotkey-overlay {
|
||||
skip-at-startup
|
||||
}
|
||||
prefer-no-csd
|
||||
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||
//animations {
|
||||
// off
|
||||
// slowdown 3.0
|
||||
//}
|
||||
animations {
|
||||
window-close {
|
||||
duration-ms 600
|
||||
curve "ease-out-quad"
|
||||
|
||||
custom-shader r"
|
||||
float hash21(vec2 p) {
|
||||
return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123);
|
||||
}
|
||||
|
||||
float value_noise(vec2 p) {
|
||||
vec2 i = floor(p);
|
||||
vec2 f = fract(p);
|
||||
vec2 u = f * f * (3.0 - 2.0 * f);
|
||||
return mix(
|
||||
mix(hash21(i), hash21(i + vec2(1.0, 0.0)), u.x),
|
||||
mix(hash21(i + vec2(0.0, 1.0)), hash21(i + vec2(1.0, 1.0)), u.x),
|
||||
u.y
|
||||
);
|
||||
}
|
||||
|
||||
float fbm(vec2 p) {
|
||||
float v = 0.0;
|
||||
float amp = 0.5;
|
||||
float freq = 1.0;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
v += amp * value_noise(p * freq);
|
||||
freq *= 2.0;
|
||||
amp *= 0.5;
|
||||
}
|
||||
return v;
|
||||
}
|
||||
|
||||
vec4 close_color(vec3 coords_geo, vec3 size_geo) {
|
||||
vec2 uv = coords_geo.xy;
|
||||
float p = niri_clamped_progress;
|
||||
float seed = niri_random_seed * 100.0;
|
||||
|
||||
// Distance from nearest edge of window rect
|
||||
float dx = min(uv.x, 1.0 - uv.x);
|
||||
float dy = min(uv.y, 1.0 - uv.y);
|
||||
float edge_dist = min(dx, dy);
|
||||
|
||||
// Noise-driven edge erosion: breaks the box shape
|
||||
float edge_noise = fbm((uv + seed) * 8.0 * 1.5);
|
||||
float erode = p * 0.80;
|
||||
float edge_threshold = edge_noise * erode;
|
||||
float edge_alpha = smoothstep(edge_threshold - 0.02, edge_threshold + 0.02, edge_dist);
|
||||
|
||||
// Skip pixels far outside eroded boundary
|
||||
if (edge_dist < -0.15) {
|
||||
return vec4(0.0);
|
||||
}
|
||||
|
||||
// Wobble the window content
|
||||
vec2 np = (uv + seed) * 8.0;
|
||||
float wx = fbm(np + vec2(17.3, 0.0)) - 0.5;
|
||||
float wy = fbm(np + vec2(0.0, 43.1)) - 0.5;
|
||||
|
||||
vec3 warped = coords_geo;
|
||||
warped.x += wx * 0.080 * p;
|
||||
warped.y += wy * 0.080 * p;
|
||||
|
||||
vec3 tex_coords = niri_geo_to_tex * warped;
|
||||
vec4 color = texture2D(niri_tex, tex_coords.st);
|
||||
|
||||
// Overall fade
|
||||
float alpha = edge_alpha * (1.0 - p * p);
|
||||
alpha = clamp(alpha, 0.0, 1.0);
|
||||
|
||||
// Warm glow at dissolving edges
|
||||
float glow = smoothstep(edge_threshold - 0.04, edge_threshold, edge_dist)
|
||||
* (1.0 - smoothstep(edge_threshold, edge_threshold + 0.04, edge_dist));
|
||||
glow *= (1.0 - p) * 0.6;
|
||||
color.rgb += vec3(0.3, 0.18, 0.06) * glow;
|
||||
|
||||
return color * alpha;
|
||||
}
|
||||
"
|
||||
}
|
||||
window-open {
|
||||
duration-ms 600
|
||||
curve "ease-out-expo"
|
||||
|
||||
custom-shader r"
|
||||
float hash21(vec2 p) {
|
||||
return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123);
|
||||
}
|
||||
|
||||
float value_noise(vec2 p) {
|
||||
vec2 i = floor(p);
|
||||
vec2 f = fract(p);
|
||||
vec2 u = f * f * (3.0 - 2.0 * f);
|
||||
return mix(
|
||||
mix(hash21(i), hash21(i + vec2(1.0, 0.0)), u.x),
|
||||
mix(hash21(i + vec2(0.0, 1.0)), hash21(i + vec2(1.0, 1.0)), u.x),
|
||||
u.y
|
||||
);
|
||||
}
|
||||
|
||||
float fbm(vec2 p) {
|
||||
float v = 0.0;
|
||||
float amp = 0.5;
|
||||
float freq = 1.0;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
v += amp * value_noise(p * freq);
|
||||
freq *= 2.0;
|
||||
amp *= 0.5;
|
||||
}
|
||||
return v;
|
||||
}
|
||||
|
||||
vec4 open_color(vec3 coords_geo, vec3 size_geo) {
|
||||
vec2 uv = coords_geo.xy;
|
||||
float p = 1.0 - niri_clamped_progress;
|
||||
float seed = niri_random_seed * 100.0;
|
||||
|
||||
// Distance from nearest edge of window rect
|
||||
float dx = min(uv.x, 1.0 - uv.x);
|
||||
float dy = min(uv.y, 1.0 - uv.y);
|
||||
float edge_dist = min(dx, dy);
|
||||
|
||||
// Noise-driven edge erosion: breaks the box shape
|
||||
float edge_noise = fbm((uv + seed) * 8.0 * 1.5);
|
||||
float erode = p * 0.80;
|
||||
float edge_threshold = edge_noise * erode;
|
||||
float edge_alpha = smoothstep(edge_threshold - 0.02, edge_threshold + 0.02, edge_dist);
|
||||
|
||||
// Skip pixels far outside eroded boundary
|
||||
if (edge_dist < -0.15) {
|
||||
return vec4(0.0);
|
||||
}
|
||||
|
||||
// Wobble the window content
|
||||
vec2 np = (uv + seed) * 8.0;
|
||||
float wx = fbm(np + vec2(17.3, 0.0)) - 0.5;
|
||||
float wy = fbm(np + vec2(0.0, 43.1)) - 0.5;
|
||||
|
||||
vec3 warped = coords_geo;
|
||||
warped.x += wx * 0.080 * p;
|
||||
warped.y += wy * 0.080 * p;
|
||||
|
||||
vec3 tex_coords = niri_geo_to_tex * warped;
|
||||
vec4 color = texture2D(niri_tex, tex_coords.st);
|
||||
|
||||
// Overall fade
|
||||
float alpha = edge_alpha * (1.0 - p * p);
|
||||
alpha = clamp(alpha, 0.0, 1.0);
|
||||
|
||||
// Warm glow at dissolving edges
|
||||
float glow = smoothstep(edge_threshold - 0.04, edge_threshold, edge_dist)
|
||||
* (1.0 - smoothstep(edge_threshold, edge_threshold + 0.04, edge_dist));
|
||||
glow *= (1.0 - p) * 0.6;
|
||||
color.rgb += vec3(0.3, 0.18, 0.06) * glow;
|
||||
|
||||
return color * alpha;
|
||||
}
|
||||
"
|
||||
}
|
||||
}
|
||||
window-rule {
|
||||
geometry-corner-radius 8
|
||||
clip-to-geometry true
|
||||
}
|
||||
window-rule {
|
||||
match app-id=r#"org.quickshell$"#
|
||||
open-floating true
|
||||
}
|
||||
window-rule {
|
||||
match app-id="org.gnome.Calculator"
|
||||
open-floating true
|
||||
}
|
||||
window-rule {
|
||||
match app-id="mpv"
|
||||
open-floating true
|
||||
default-floating-position x=0 y=32 relative-to="bottom"
|
||||
}
|
||||
window-rule {
|
||||
match app-id="^ghostty$"
|
||||
opacity 0.8
|
||||
background-effect {
|
||||
blur true
|
||||
}
|
||||
}
|
||||
window-rule {
|
||||
draw-border-with-background false
|
||||
}
|
||||
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
|
||||
// spawn-at-startup "waybar"
|
||||
binds {
|
||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||
Mod+Alt+P hotkey-overlay-title="Open Power Menu" { spawn "dms" "ipc" "call" "powermenu" "toggle"; }
|
||||
Mod+Alt+I hotkey-overlay-title="Toggle Idle Inhibitoer" { spawn "dms" "ipc" "call" "inhibit" "toggle"; }
|
||||
Mod+Q hotkey-overlay-title="Open a Terminal: ghostty" { spawn "ghostty"; }
|
||||
Mod+Space hotkey-overlay-title="Run an Application: dank launcher" { spawn "dms" "ipc" "call" "launcher" "toggle"; }
|
||||
//Mod+Space hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; }
|
||||
Mod+W hotkey-overlay-title="Open a Web browser: firefox" { spawn "firefox"; }
|
||||
Mod+E hotkey-overlay-title="Open File browser: nautilus" { spawn "nautilus"; }
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; }
|
||||
Mod+Alt+WheelScrollUp { spawn "dms" "ipc" "call" "audio" "increment" "5"; }
|
||||
Mod+Alt+WheelScrollDown { spawn "dms" "ipc" "call" "audio" "decrement" "5"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
||||
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
||||
XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; }
|
||||
XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; }
|
||||
XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; }
|
||||
XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; }
|
||||
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
|
||||
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
|
||||
Mod+O repeat=false { toggle-overview; }
|
||||
Mod+Escape repeat=false { close-window; }
|
||||
Mod+Left { focus-column-left; }
|
||||
Mod+Down { focus-window-down; }
|
||||
Mod+Up { focus-window-up; }
|
||||
Mod+Right { focus-column-right; }
|
||||
Mod+H { focus-column-left; }
|
||||
Mod+J { focus-window-down; }
|
||||
Mod+K { focus-window-up; }
|
||||
Mod+L { focus-column-right; }
|
||||
Mod+Ctrl+Left { move-column-left; }
|
||||
Mod+Ctrl+Down { move-window-down; }
|
||||
Mod+Ctrl+Up { move-window-up; }
|
||||
Mod+Ctrl+Right { move-column-right; }
|
||||
Mod+Ctrl+H { move-column-left; }
|
||||
Mod+Ctrl+J { move-window-down; }
|
||||
Mod+Ctrl+K { move-window-up; }
|
||||
Mod+Ctrl+L { move-column-right; }
|
||||
Mod+Home { focus-column-first; }
|
||||
Mod+End { focus-column-last; }
|
||||
Mod+Ctrl+Home { move-column-to-first; }
|
||||
Mod+Ctrl+End { move-column-to-last; }
|
||||
Mod+Shift+Left { focus-monitor-left; }
|
||||
Mod+Shift+Down { focus-monitor-down; }
|
||||
Mod+Shift+Up { focus-monitor-up; }
|
||||
Mod+Shift+Right { focus-monitor-right; }
|
||||
Mod+Shift+H { focus-monitor-left; }
|
||||
Mod+Shift+J { focus-monitor-down; }
|
||||
Mod+Shift+K { focus-monitor-up; }
|
||||
Mod+Shift+L { focus-monitor-right; }
|
||||
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
|
||||
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
|
||||
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
|
||||
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
|
||||
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
|
||||
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
|
||||
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
|
||||
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
||||
Mod+Page_Down { focus-workspace-down; }
|
||||
Mod+Page_Up { focus-workspace-up; }
|
||||
Mod+U { focus-workspace-down; }
|
||||
Mod+I { focus-workspace-up; }
|
||||
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
|
||||
Mod+Ctrl+U { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+I { move-column-to-workspace-up; }
|
||||
Mod+Shift+Page_Down { move-workspace-down; }
|
||||
Mod+Shift+Page_Up { move-workspace-up; }
|
||||
Mod+Shift+U { move-workspace-down; }
|
||||
Mod+Shift+I { move-workspace-up; }
|
||||
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||
Mod+WheelScrollRight { focus-column-right; }
|
||||
Mod+WheelScrollLeft { focus-column-left; }
|
||||
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||
Mod+1 { focus-workspace 1; }
|
||||
Mod+2 { focus-workspace 2; }
|
||||
Mod+3 { focus-workspace 3; }
|
||||
Mod+4 { focus-workspace 4; }
|
||||
Mod+5 { focus-workspace 5; }
|
||||
Mod+6 { focus-workspace 6; }
|
||||
Mod+7 { focus-workspace 7; }
|
||||
Mod+8 { focus-workspace 8; }
|
||||
Mod+9 { focus-workspace 9; }
|
||||
Mod+Ctrl+1 { move-column-to-workspace 1; }
|
||||
Mod+Ctrl+2 { move-column-to-workspace 2; }
|
||||
Mod+Ctrl+3 { move-column-to-workspace 3; }
|
||||
Mod+Ctrl+4 { move-column-to-workspace 4; }
|
||||
Mod+Ctrl+5 { move-column-to-workspace 5; }
|
||||
Mod+Ctrl+6 { move-column-to-workspace 6; }
|
||||
Mod+Ctrl+7 { move-column-to-workspace 7; }
|
||||
Mod+Ctrl+8 { move-column-to-workspace 8; }
|
||||
Mod+Ctrl+9 { move-column-to-workspace 9; }
|
||||
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||
Mod+BracketRight { consume-or-expel-window-right; }
|
||||
Mod+Comma { consume-window-into-column; }
|
||||
Mod+Period { expel-window-from-column; }
|
||||
Mod+R { switch-preset-column-width; }
|
||||
Mod+Shift+R { switch-preset-window-height; }
|
||||
Mod+Ctrl+R { reset-window-height; }
|
||||
Mod+F { maximize-column; }
|
||||
Mod+Shift+F { fullscreen-window; }
|
||||
Mod+Ctrl+F { expand-column-to-available-width; }
|
||||
Mod+C { center-column; }
|
||||
Mod+Ctrl+C { center-visible-columns; }
|
||||
Mod+Minus { set-column-width "-10%"; }
|
||||
Mod+Equal { set-column-width "+10%"; }
|
||||
Mod+Shift+Minus { set-window-height "-10%"; }
|
||||
Mod+Shift+Equal { set-window-height "+10%"; }
|
||||
//Mod+V { toggle-window-floating; }
|
||||
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
|
||||
Mod+Shift+W { toggle-column-tabbed-display; }
|
||||
Shift+Alt+R { screenshot; }
|
||||
Shift+Alt+S { screenshot-screen; }
|
||||
Shift+Alt+W { screenshot-window; }
|
||||
Mod+Shift+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
|
||||
Mod+Shift+E { quit; }
|
||||
Ctrl+Alt+Delete { quit; }
|
||||
Mod+Shift+P { power-off-monitors; }
|
||||
}
|
||||
include "dms/binds.kdl"
|
||||
|
||||
include "dms/outputs.kdl"
|
||||
|
||||
include "dms/windowrules.kdl"
|
||||
|
||||
include "dms/cursor.kdl"
|
||||
632
home/config/niri/config.kdl.dmsbackup1785434499
Normal file
|
|
@ -0,0 +1,632 @@
|
|||
// This config is in the KDL format: https://kdl.dev
|
||||
// "/-" comments out the following node.
|
||||
// Check the wiki for a full description of the configuration:
|
||||
// https://niri-wm.github.io/niri/Configuration:-Introduction
|
||||
|
||||
// Input device configuration.
|
||||
// Find the full list of options on the wiki:
|
||||
// https://niri-wm.github.io/niri/Configuration:-Input
|
||||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
// You can set rules, model, layout, variant and options.
|
||||
// For more information, see xkeyboard-config(7).
|
||||
|
||||
// For example:
|
||||
// layout "us,ru"
|
||||
// options "grp:win_space_toggle,compose:ralt,ctrl:nocaps"
|
||||
|
||||
// If this section is empty, niri will fetch xkb settings
|
||||
// from org.freedesktop.locale1. You can control these using
|
||||
// localectl set-x11-keymap.
|
||||
}
|
||||
|
||||
// Enable numlock on startup, omitting this setting disables it.
|
||||
numlock
|
||||
}
|
||||
|
||||
// Next sections include libinput settings.
|
||||
// Omitting settings disables them, or leaves them at their default values.
|
||||
// All commented-out settings here are examples, not defaults.
|
||||
touchpad {
|
||||
// off
|
||||
tap
|
||||
// dwt
|
||||
// dwtp
|
||||
// drag false
|
||||
// drag-lock
|
||||
natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "two-finger"
|
||||
// disabled-on-external-mouse
|
||||
}
|
||||
|
||||
mouse {
|
||||
// off
|
||||
// natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "no-scroll"
|
||||
}
|
||||
|
||||
trackpoint {
|
||||
// off
|
||||
// natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "on-button-down"
|
||||
// scroll-button 273
|
||||
// scroll-button-lock
|
||||
// middle-emulation
|
||||
}
|
||||
|
||||
// Uncomment this to make the mouse warp to the center of newly focused windows.
|
||||
// warp-mouse-to-focus
|
||||
|
||||
// Focus windows and outputs automatically when moving the mouse into them.
|
||||
// Setting max-scroll-amount="0%" makes it work only on windows already fully on screen.
|
||||
// focus-follows-mouse max-scroll-amount="0%"
|
||||
}
|
||||
|
||||
// You can configure outputs by their name, which you can find
|
||||
// by running `niri msg outputs` while inside a niri instance.
|
||||
// The built-in laptop monitor is usually called "eDP-1".
|
||||
// Find more information on the wiki:
|
||||
// https://niri-wm.github.io/niri/Configuration:-Outputs
|
||||
// Remember to uncomment the node by removing "/-"!
|
||||
/-output "eDP-1" {
|
||||
// Uncomment this line to disable this output.
|
||||
// off
|
||||
|
||||
// Resolution and, optionally, refresh rate of the output.
|
||||
// The format is "<width>x<height>" or "<width>x<height>@<refresh rate>".
|
||||
// If the refresh rate is omitted, niri will pick the highest refresh rate
|
||||
// for the resolution.
|
||||
// If the mode is omitted altogether or is invalid, niri will pick one automatically.
|
||||
// Run `niri msg outputs` while inside a niri instance to list all outputs and their modes.
|
||||
mode "1920x1080@120.030"
|
||||
|
||||
// You can use integer or fractional scale, for example use 1.5 for 150% scale.
|
||||
scale 2
|
||||
|
||||
// Transform allows to rotate the output counter-clockwise, valid values are:
|
||||
// normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270.
|
||||
transform "normal"
|
||||
|
||||
// Position of the output in the global coordinate space.
|
||||
// This affects directional monitor actions like "focus-monitor-left", and cursor movement.
|
||||
// The cursor can only move between directly adjacent outputs.
|
||||
// Output scale and rotation has to be taken into account for positioning:
|
||||
// outputs are sized in logical, or scaled, pixels.
|
||||
// For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080,
|
||||
// so to put another output directly adjacent to it on the right, set its x to 1920.
|
||||
// If the position is unset or results in an overlap, the output is instead placed
|
||||
// automatically.
|
||||
position x=1280 y=0
|
||||
}
|
||||
|
||||
// Settings that influence how windows are positioned and sized.
|
||||
// Find more information on the wiki:
|
||||
// https://niri-wm.github.io/niri/Configuration:-Layout
|
||||
layout {
|
||||
// Set gaps around windows in logical pixels.
|
||||
gaps 16
|
||||
|
||||
// When to center a column when changing focus, options are:
|
||||
// - "never", default behavior, focusing an off-screen column will keep at the left
|
||||
// or right edge of the screen.
|
||||
// - "always", the focused column will always be centered.
|
||||
// - "on-overflow", focusing a column will center it if it doesn't fit
|
||||
// together with the previously focused column.
|
||||
center-focused-column "never"
|
||||
|
||||
// You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
|
||||
preset-column-widths {
|
||||
// Proportion sets the width as a fraction of the output width, taking gaps into account.
|
||||
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
|
||||
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
|
||||
proportion 0.33333
|
||||
proportion 0.5
|
||||
proportion 0.66667
|
||||
|
||||
// Fixed sets the width in logical pixels exactly.
|
||||
// fixed 1920
|
||||
}
|
||||
|
||||
// You can also customize the heights that "switch-preset-window-height" (Mod+Ctrl+Shift+R) toggles between.
|
||||
// preset-window-heights { }
|
||||
|
||||
// You can change the default width of the new windows.
|
||||
default-column-width { proportion 0.5; }
|
||||
// If you leave the brackets empty, the windows themselves will decide their initial width.
|
||||
// default-column-width {}
|
||||
|
||||
// By default focus ring and border are rendered as a solid background rectangle
|
||||
// behind windows. That is, they will show up through semitransparent windows.
|
||||
// This is because windows using client-side decorations can have an arbitrary shape.
|
||||
//
|
||||
// If you don't like that, you should uncomment `prefer-no-csd` below.
|
||||
// Niri will draw focus ring and border *around* windows that agree to omit their
|
||||
// client-side decorations.
|
||||
//
|
||||
// Alternatively, you can override it with a window rule called
|
||||
// `draw-border-with-background`.
|
||||
|
||||
// You can change how the focus ring looks.
|
||||
focus-ring {
|
||||
// Uncomment this line to disable the focus ring.
|
||||
// off
|
||||
|
||||
// How many logical pixels the ring extends out from the windows.
|
||||
width 4
|
||||
|
||||
// Colors can be set in a variety of ways:
|
||||
// - CSS named colors: "red"
|
||||
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
|
||||
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
|
||||
|
||||
// Color of the ring on the active monitor.
|
||||
active-color "#7fc8ff"
|
||||
|
||||
// Color of the ring on inactive monitors.
|
||||
//
|
||||
// The focus ring only draws around the active window, so the only place
|
||||
// where you can see its inactive-color is on other monitors.
|
||||
inactive-color "#505050"
|
||||
|
||||
// You can also use gradients. They take precedence over solid colors.
|
||||
// Gradients are rendered the same as CSS linear-gradient(angle, from, to).
|
||||
// The angle is the same as in linear-gradient, and is optional,
|
||||
// defaulting to 180 (top-to-bottom gradient).
|
||||
// You can use any CSS linear-gradient tool on the web to set these up.
|
||||
// Changing the color space is also supported, check the wiki for more info.
|
||||
//
|
||||
// active-gradient from="#80c8ff" to="#c7ff7f" angle=45
|
||||
|
||||
// You can also color the gradient relative to the entire view
|
||||
// of the workspace, rather than relative to just the window itself.
|
||||
// To do that, set relative-to="workspace-view".
|
||||
//
|
||||
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||
}
|
||||
|
||||
// You can also add a border. It's similar to the focus ring, but always visible.
|
||||
border {
|
||||
// The settings are the same as for the focus ring.
|
||||
// If you enable the border, you probably want to disable the focus ring.
|
||||
off
|
||||
|
||||
width 4
|
||||
active-color "#ffc87f"
|
||||
inactive-color "#505050"
|
||||
|
||||
// Color of the border around windows that request your attention.
|
||||
urgent-color "#9b0000"
|
||||
|
||||
// Gradients can use a few different interpolation color spaces.
|
||||
// For example, this is a pastel rainbow gradient via in="oklch longer hue".
|
||||
//
|
||||
// active-gradient from="#e5989b" to="#ffb4a2" angle=45 relative-to="workspace-view" in="oklch longer hue"
|
||||
|
||||
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||
}
|
||||
|
||||
// You can enable drop shadows for windows.
|
||||
shadow {
|
||||
// Uncomment the next line to enable shadows.
|
||||
// on
|
||||
|
||||
// By default, the shadow draws only around its window, and not behind it.
|
||||
// Uncomment this setting to make the shadow draw behind its window.
|
||||
//
|
||||
// Note that niri has no way of knowing about the CSD window corner
|
||||
// radius. It has to assume that windows have square corners, leading to
|
||||
// shadow artifacts inside the CSD rounded corners. This setting fixes
|
||||
// those artifacts.
|
||||
//
|
||||
// However, instead you may want to set prefer-no-csd and/or
|
||||
// geometry-corner-radius. Then, niri will know the corner radius and
|
||||
// draw the shadow correctly, without having to draw it behind the
|
||||
// window. These will also remove client-side shadows if the window
|
||||
// draws any.
|
||||
//
|
||||
// draw-behind-window true
|
||||
|
||||
// You can change how shadows look. The values below are in logical
|
||||
// pixels and match the CSS box-shadow properties.
|
||||
|
||||
// Softness controls the shadow blur radius.
|
||||
softness 30
|
||||
|
||||
// Spread expands the shadow.
|
||||
spread 5
|
||||
|
||||
// Offset moves the shadow relative to the window.
|
||||
offset x=0 y=5
|
||||
|
||||
// You can also change the shadow color and opacity.
|
||||
color "#0007"
|
||||
}
|
||||
|
||||
// Struts shrink the area occupied by windows, similarly to layer-shell panels.
|
||||
// You can think of them as a kind of outer gaps. They are set in logical pixels.
|
||||
// Left and right struts will cause the next window to the side to always be visible.
|
||||
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
|
||||
// layer-shell panels and regular gaps.
|
||||
struts {
|
||||
// left 64
|
||||
// right 64
|
||||
// top 64
|
||||
// bottom 64
|
||||
}
|
||||
}
|
||||
|
||||
// Add lines like this to spawn processes at startup.
|
||||
// Note that running niri as a session supports xdg-desktop-autostart,
|
||||
// which may be more convenient to use.
|
||||
// See the binds section below for more spawn examples.
|
||||
|
||||
// This line starts waybar, a commonly used bar for Wayland compositors.
|
||||
spawn-at-startup "waybar"
|
||||
|
||||
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
|
||||
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
|
||||
|
||||
hotkey-overlay {
|
||||
// Uncomment this line to disable the "Important Hotkeys" pop-up at startup.
|
||||
// skip-at-startup
|
||||
}
|
||||
|
||||
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
|
||||
// If the client will specifically ask for CSD, the request will be honored.
|
||||
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
|
||||
// This option will also fix border/focus ring drawing behind some semitransparent windows.
|
||||
// After enabling or disabling this, you need to restart the apps for this to take effect.
|
||||
// prefer-no-csd
|
||||
|
||||
// You can change the path where screenshots are saved.
|
||||
// A ~ at the front will be expanded to the home directory.
|
||||
// The path is formatted with strftime(3) to give you the screenshot date and time.
|
||||
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||
|
||||
// You can also set this to null to disable saving screenshots to disk.
|
||||
// screenshot-path null
|
||||
|
||||
// Animation settings.
|
||||
// The wiki explains how to configure individual animations:
|
||||
// https://niri-wm.github.io/niri/Configuration:-Animations
|
||||
animations {
|
||||
// Uncomment to turn off all animations.
|
||||
// off
|
||||
|
||||
// Slow down all animations by this factor. Values below 1 speed them up instead.
|
||||
// slowdown 3.0
|
||||
}
|
||||
|
||||
// Window rules let you adjust behavior for individual windows.
|
||||
// Find more information on the wiki:
|
||||
// https://niri-wm.github.io/niri/Configuration:-Window-Rules
|
||||
|
||||
// Work around WezTerm's initial configure bug
|
||||
// by setting an empty default-column-width.
|
||||
window-rule {
|
||||
// This regular expression is intentionally made as specific as possible,
|
||||
// since this is the default config, and we want no false positives.
|
||||
// You can get away with just app-id="wezterm" if you want.
|
||||
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||
default-column-width {}
|
||||
}
|
||||
|
||||
// Open the Firefox picture-in-picture player as floating by default.
|
||||
window-rule {
|
||||
// This app-id regular expression will work for both:
|
||||
// - host Firefox (app-id is "firefox")
|
||||
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
|
||||
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
||||
open-floating true
|
||||
}
|
||||
|
||||
// Example: block out two password managers from screen capture.
|
||||
// (This example rule is commented out with a "/-" in front.)
|
||||
/-window-rule {
|
||||
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
||||
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
||||
|
||||
block-out-from "screen-capture"
|
||||
|
||||
// Use this instead if you want them visible on third-party screenshot tools.
|
||||
// block-out-from "screencast"
|
||||
}
|
||||
|
||||
// Example: enable rounded corners for all windows.
|
||||
// (This example rule is commented out with a "/-" in front.)
|
||||
/-window-rule {
|
||||
geometry-corner-radius 12
|
||||
clip-to-geometry true
|
||||
}
|
||||
|
||||
binds {
|
||||
// Keys consist of modifiers separated by + signs, followed by an XKB key name
|
||||
// in the end. To find an XKB name for a particular key, you may use a program
|
||||
// like wev.
|
||||
//
|
||||
// "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
|
||||
// when running as a winit window.
|
||||
//
|
||||
// Most actions that you can bind here can also be invoked programmatically with
|
||||
// `niri msg action do-something`.
|
||||
|
||||
// Mod-Shift-/, which is usually the same as Mod-?,
|
||||
// shows a list of important hotkeys.
|
||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||
|
||||
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||
Mod+T hotkey-overlay-title="Open a Terminal: alacritty" { spawn "alacritty"; }
|
||||
Mod+D hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; }
|
||||
Super+Alt+L hotkey-overlay-title="Lock the Screen: swaylock" { spawn "swaylock"; }
|
||||
|
||||
// Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.
|
||||
// Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`.
|
||||
// For example, this is a standard bind to toggle the screen reader (orca).
|
||||
Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
|
||||
|
||||
// Example volume keys mappings for PipeWire & WirePlumber.
|
||||
// The allow-when-locked=true property makes them work even when the session is locked.
|
||||
// Using spawn-sh allows to pass multiple arguments together with the command.
|
||||
// "-l 1.0" limits the volume to 100%.
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
||||
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
||||
|
||||
// Example media keys mapping using playerctl.
|
||||
// This will work with any MPRIS-enabled media player.
|
||||
XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; }
|
||||
XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; }
|
||||
XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; }
|
||||
XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; }
|
||||
|
||||
// Example brightness key mappings for brightnessctl.
|
||||
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
|
||||
// but you need to manually put each argument in separate "" quotes.
|
||||
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
|
||||
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
|
||||
|
||||
// Open/close the Overview: a zoomed-out view of workspaces and windows.
|
||||
// You can also move the mouse into the top-left hot corner,
|
||||
// or do a four-finger swipe up on a touchpad.
|
||||
Mod+O repeat=false { toggle-overview; }
|
||||
|
||||
Mod+Q repeat=false { close-window; }
|
||||
|
||||
Mod+Left { focus-column-left; }
|
||||
Mod+Down { focus-window-down; }
|
||||
Mod+Up { focus-window-up; }
|
||||
Mod+Right { focus-column-right; }
|
||||
Mod+H { focus-column-left; }
|
||||
Mod+J { focus-window-down; }
|
||||
Mod+K { focus-window-up; }
|
||||
Mod+L { focus-column-right; }
|
||||
|
||||
Mod+Ctrl+Left { move-column-left; }
|
||||
Mod+Ctrl+Down { move-window-down; }
|
||||
Mod+Ctrl+Up { move-window-up; }
|
||||
Mod+Ctrl+Right { move-column-right; }
|
||||
Mod+Ctrl+H { move-column-left; }
|
||||
Mod+Ctrl+J { move-window-down; }
|
||||
Mod+Ctrl+K { move-window-up; }
|
||||
Mod+Ctrl+L { move-column-right; }
|
||||
|
||||
// Alternative commands that move across workspaces when reaching
|
||||
// the first or last window in a column.
|
||||
// Mod+J { focus-window-or-workspace-down; }
|
||||
// Mod+K { focus-window-or-workspace-up; }
|
||||
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
|
||||
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
|
||||
|
||||
Mod+Home { focus-column-first; }
|
||||
Mod+End { focus-column-last; }
|
||||
Mod+Ctrl+Home { move-column-to-first; }
|
||||
Mod+Ctrl+End { move-column-to-last; }
|
||||
|
||||
Mod+Shift+Left { focus-monitor-left; }
|
||||
Mod+Shift+Down { focus-monitor-down; }
|
||||
Mod+Shift+Up { focus-monitor-up; }
|
||||
Mod+Shift+Right { focus-monitor-right; }
|
||||
Mod+Shift+H { focus-monitor-left; }
|
||||
Mod+Shift+J { focus-monitor-down; }
|
||||
Mod+Shift+K { focus-monitor-up; }
|
||||
Mod+Shift+L { focus-monitor-right; }
|
||||
|
||||
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
|
||||
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
|
||||
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
|
||||
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
|
||||
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
|
||||
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
|
||||
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
|
||||
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
|
||||
// ...
|
||||
|
||||
// And you can also move a whole workspace to another monitor:
|
||||
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
|
||||
// ...
|
||||
|
||||
Mod+Page_Down { focus-workspace-down; }
|
||||
Mod+Page_Up { focus-workspace-up; }
|
||||
Mod+U { focus-workspace-down; }
|
||||
Mod+I { focus-workspace-up; }
|
||||
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
|
||||
Mod+Ctrl+U { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+I { move-column-to-workspace-up; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
|
||||
// ...
|
||||
|
||||
Mod+Shift+Page_Down { move-workspace-down; }
|
||||
Mod+Shift+Page_Up { move-workspace-up; }
|
||||
Mod+Shift+U { move-workspace-down; }
|
||||
Mod+Shift+I { move-workspace-up; }
|
||||
|
||||
// You can bind mouse wheel scroll ticks using the following syntax.
|
||||
// These binds will change direction based on the natural-scroll setting.
|
||||
//
|
||||
// To avoid scrolling through workspaces really fast, you can use
|
||||
// the cooldown-ms property. The bind will be rate-limited to this value.
|
||||
// You can set a cooldown on any bind, but it's most useful for the wheel.
|
||||
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||
|
||||
Mod+WheelScrollRight { focus-column-right; }
|
||||
Mod+WheelScrollLeft { focus-column-left; }
|
||||
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||
|
||||
// Usually scrolling up and down with Shift in applications results in
|
||||
// horizontal scrolling; these binds replicate that.
|
||||
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||
|
||||
// Similarly, you can bind touchpad scroll "ticks".
|
||||
// Touchpad scrolling is continuous, so for these binds it is split into
|
||||
// discrete intervals.
|
||||
// These binds are also affected by touchpad's natural-scroll, so these
|
||||
// example binds are "inverted", since we have natural-scroll enabled for
|
||||
// touchpads by default.
|
||||
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
|
||||
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
|
||||
|
||||
// You can refer to workspaces by index. However, keep in mind that
|
||||
// niri is a dynamic workspace system, so these commands are kind of
|
||||
// "best effort". Trying to refer to a workspace index bigger than
|
||||
// the current workspace count will instead refer to the bottommost
|
||||
// (empty) workspace.
|
||||
//
|
||||
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
||||
// will all refer to the 3rd workspace.
|
||||
Mod+1 { focus-workspace 1; }
|
||||
Mod+2 { focus-workspace 2; }
|
||||
Mod+3 { focus-workspace 3; }
|
||||
Mod+4 { focus-workspace 4; }
|
||||
Mod+5 { focus-workspace 5; }
|
||||
Mod+6 { focus-workspace 6; }
|
||||
Mod+7 { focus-workspace 7; }
|
||||
Mod+8 { focus-workspace 8; }
|
||||
Mod+9 { focus-workspace 9; }
|
||||
Mod+Ctrl+1 { move-column-to-workspace 1; }
|
||||
Mod+Ctrl+2 { move-column-to-workspace 2; }
|
||||
Mod+Ctrl+3 { move-column-to-workspace 3; }
|
||||
Mod+Ctrl+4 { move-column-to-workspace 4; }
|
||||
Mod+Ctrl+5 { move-column-to-workspace 5; }
|
||||
Mod+Ctrl+6 { move-column-to-workspace 6; }
|
||||
Mod+Ctrl+7 { move-column-to-workspace 7; }
|
||||
Mod+Ctrl+8 { move-column-to-workspace 8; }
|
||||
Mod+Ctrl+9 { move-column-to-workspace 9; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Ctrl+1 { move-window-to-workspace 1; }
|
||||
|
||||
// Switches focus between the current and the previous workspace.
|
||||
// Mod+Tab { focus-workspace-previous; }
|
||||
|
||||
// The following binds move the focused window in and out of a column.
|
||||
// If the window is alone, they will consume it into the nearby column to the side.
|
||||
// If the window is already in a column, they will expel it out.
|
||||
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||
Mod+BracketRight { consume-or-expel-window-right; }
|
||||
|
||||
// Consume one window from the right to the bottom of the focused column.
|
||||
Mod+Comma { consume-window-into-column; }
|
||||
// Expel the bottom window from the focused column to the right.
|
||||
Mod+Period { expel-window-from-column; }
|
||||
|
||||
// Cycle through widths set in preset-column-widths.
|
||||
Mod+R { switch-preset-column-width; }
|
||||
// Cycling through the presets in reverse order is also possible.
|
||||
Mod+Shift+R { switch-preset-column-width-back; }
|
||||
|
||||
Mod+Ctrl+Shift+R { switch-preset-window-height; }
|
||||
Mod+Ctrl+R { reset-window-height; }
|
||||
|
||||
Mod+F { maximize-column; }
|
||||
Mod+Shift+F { fullscreen-window; }
|
||||
|
||||
// While maximize-column leaves gaps and borders around the window,
|
||||
// maximize-window-to-edges doesn't: the window expands to the edges of the screen.
|
||||
// This bind corresponds to normal window maximizing,
|
||||
// e.g. by double-clicking on the titlebar.
|
||||
Mod+M { maximize-window-to-edges; }
|
||||
|
||||
// Expand the focused column to space not taken up by other fully visible columns.
|
||||
// Makes the column "fill the rest of the space".
|
||||
Mod+Ctrl+F { expand-column-to-available-width; }
|
||||
|
||||
Mod+C { center-column; }
|
||||
|
||||
// Center all fully visible columns on screen.
|
||||
Mod+Ctrl+C { center-visible-columns; }
|
||||
|
||||
// Finer width adjustments.
|
||||
// This command can also:
|
||||
// * set width in pixels: "1000"
|
||||
// * adjust width in pixels: "-5" or "+5"
|
||||
// * set width as a percentage of screen width: "25%"
|
||||
// * adjust width as a percentage of screen width: "-10%" or "+10%"
|
||||
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
|
||||
// set-column-width "100" will make the column occupy 200 physical screen pixels.
|
||||
Mod+Minus { set-column-width "-10%"; }
|
||||
Mod+Equal { set-column-width "+10%"; }
|
||||
|
||||
// Finer height adjustments when in column with other windows.
|
||||
Mod+Shift+Minus { set-window-height "-10%"; }
|
||||
Mod+Shift+Equal { set-window-height "+10%"; }
|
||||
|
||||
// Move the focused window between the floating and the tiling layout.
|
||||
Mod+V { toggle-window-floating; }
|
||||
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
|
||||
|
||||
// Toggle tabbed column display mode.
|
||||
// Windows in this column will appear as vertical tabs,
|
||||
// rather than stacked on top of each other.
|
||||
Mod+W { toggle-column-tabbed-display; }
|
||||
|
||||
// Actions to switch layouts.
|
||||
// Note: if you uncomment these, make sure you do NOT have
|
||||
// a matching layout switch hotkey configured in xkb options above.
|
||||
// Having both at once on the same hotkey will break the switching,
|
||||
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
|
||||
// Mod+Space { switch-layout "next"; }
|
||||
// Mod+Shift+Space { switch-layout "prev"; }
|
||||
|
||||
Print { screenshot; }
|
||||
Ctrl+Print { screenshot-screen; }
|
||||
Alt+Print { screenshot-window; }
|
||||
|
||||
// Applications such as remote-desktop clients and software KVM switches may
|
||||
// request that niri stops processing the keyboard shortcuts defined here
|
||||
// so they may, for example, forward the key presses as-is to a remote machine.
|
||||
// It's a good idea to bind an escape hatch to toggle the inhibitor,
|
||||
// so a buggy application can't hold your session hostage.
|
||||
//
|
||||
// The allow-inhibiting=false property can be applied to other binds as well,
|
||||
// which ensures niri always processes them, even when an inhibitor is active.
|
||||
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
|
||||
|
||||
// The quit action will show a confirmation dialog to avoid accidental exits.
|
||||
Mod+Shift+E { quit; }
|
||||
Ctrl+Alt+Delete { quit; }
|
||||
|
||||
// Powers off the monitors. To turn them back on, do any input like
|
||||
// moving the mouse or pressing any other key.
|
||||
Mod+Shift+P { power-off-monitors; }
|
||||
}
|
||||
10
home/config/niri/dms/alttab.kdl
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
// ! DO NOT EDIT !
|
||||
// ! AUTO-GENERATED BY DMS !
|
||||
// ! CHANGES WILL BE OVERWRITTEN !
|
||||
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
|
||||
|
||||
recent-windows {
|
||||
highlight {
|
||||
corner-radius 12
|
||||
}
|
||||
}
|
||||
1
home/config/niri/dms/binds.kdl
Normal file
|
|
@ -0,0 +1 @@
|
|||
binds {}
|
||||
39
home/config/niri/dms/colors.kdl
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
// ! Auto-generated file. Do not edit directly.
|
||||
// Remove `include "dms/colors.kdl"` from your config to override.
|
||||
|
||||
layout {
|
||||
background-color "transparent"
|
||||
|
||||
focus-ring {
|
||||
active-color "#eeb1ff"
|
||||
inactive-color "#919191"
|
||||
urgent-color "#ffb4ab"
|
||||
}
|
||||
|
||||
border {
|
||||
active-color "#eeb1ff"
|
||||
inactive-color "#919191"
|
||||
urgent-color "#ffb4ab"
|
||||
}
|
||||
|
||||
shadow {
|
||||
color "#00000070"
|
||||
}
|
||||
|
||||
tab-indicator {
|
||||
active-color "#eeb1ff"
|
||||
inactive-color "#919191"
|
||||
urgent-color "#ffb4ab"
|
||||
}
|
||||
|
||||
insert-hint {
|
||||
color "#eeb1ff80"
|
||||
}
|
||||
}
|
||||
|
||||
recent-windows {
|
||||
highlight {
|
||||
active-color "#662f79"
|
||||
urgent-color "#ffb4ab"
|
||||
}
|
||||
}
|
||||
9
home/config/niri/dms/cursor.kdl
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// ! DO NOT EDIT !
|
||||
// ! AUTO-GENERATED BY DMS !
|
||||
// ! CHANGES WILL BE OVERWRITTEN !
|
||||
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
|
||||
|
||||
cursor {
|
||||
xcursor-theme "Bibata-Modern-Classic"
|
||||
xcursor-size 24
|
||||
}
|
||||
22
home/config/niri/dms/layout.kdl
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
// ! DO NOT EDIT !
|
||||
// ! AUTO-GENERATED BY DMS !
|
||||
// ! CHANGES WILL BE OVERWRITTEN !
|
||||
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
|
||||
|
||||
layout {
|
||||
gaps 4
|
||||
|
||||
border {
|
||||
width 2
|
||||
}
|
||||
|
||||
focus-ring {
|
||||
width 2
|
||||
}
|
||||
}
|
||||
window-rule {
|
||||
geometry-corner-radius 12
|
||||
clip-to-geometry true
|
||||
tiled-state true
|
||||
draw-border-with-background false
|
||||
}
|
||||
0
home/config/niri/dms/outputs.kdl
Normal file
0
home/config/niri/dms/windowrules.kdl
Normal file
9
home/config/niri/dms/wpblur.kdl
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// ! DO NOT EDIT !
|
||||
// ! AUTO-GENERATED BY DMS !
|
||||
// ! CHANGES WILL BE OVERWRITTEN !
|
||||
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
|
||||
|
||||
layer-rule {
|
||||
match namespace="dms:blurwallpaper"
|
||||
place-within-backdrop true
|
||||
}
|
||||
136
home/config/nvim/init.lua
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
-------------------------------------------------------------------------------
|
||||
-- 1. Leader Keys & Timeout Options
|
||||
-------------------------------------------------------------------------------
|
||||
vim.keymap.set("", "<Space>", "Nop")
|
||||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ' '
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
-- 2. Built-in Plugin Manager (vim.pack)
|
||||
-------------------------------------------------------------------------------
|
||||
vim.pack.add({
|
||||
'https://github.com/RomanAverin/charleston.nvim',
|
||||
'https://github.com/nvim-tree/nvim-web-devicons',
|
||||
'https://github.com/nvim-lualine/lualine.nvim',
|
||||
'https://github.com/stevearc/oil.nvim',
|
||||
'https://github.com/nvim-lua/plenary.nvim',
|
||||
'https://github.com/nvim-telescope/telescope.nvim',
|
||||
'https://github.com/nvimdev/dashboard-nvim',
|
||||
})
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
-- 3. Options
|
||||
-------------------------------------------------------------------------------
|
||||
local opt = vim.opt
|
||||
|
||||
opt.showmode = false
|
||||
opt.number = true
|
||||
opt.relativenumber = true
|
||||
opt.tabstop = 4
|
||||
opt.shiftwidth = 4
|
||||
opt.expandtab = true
|
||||
opt.autoindent = true
|
||||
opt.smartindent = true
|
||||
opt.background = "dark"
|
||||
opt.signcolumn = "yes"
|
||||
opt.cursorline = true
|
||||
opt.listchars = "tab: ,multispace:| ,eol:"
|
||||
opt.list = true
|
||||
opt.clipboard = "unnamedplus"
|
||||
|
||||
opt.timeoutlen = 2000
|
||||
-- opt.timeout = false
|
||||
-------------------------------------------------------------------------------
|
||||
-- 4. Plugin Configurations & Colorscheme
|
||||
-------------------------------------------------------------------------------
|
||||
-- Colorscheme
|
||||
vim.cmd.colorscheme('charleston')
|
||||
|
||||
-- Lualine
|
||||
require('lualine').setup({
|
||||
options = {
|
||||
theme = 'charleston',
|
||||
component_separators = { left = '', right = '' },
|
||||
section_separators = { left = '', right = '' },
|
||||
globalstatus = true,
|
||||
},
|
||||
sections = {
|
||||
lualine_a = { 'mode' },
|
||||
lualine_b = { 'branch', 'diff', 'diagnostics' },
|
||||
lualine_c = { 'filename' },
|
||||
lualine_x = { 'encoding', 'fileformat', 'filetype' },
|
||||
lualine_y = { 'progress' },
|
||||
lualine_z = { 'location' },
|
||||
},
|
||||
})
|
||||
|
||||
-- Oil
|
||||
require('oil').setup({
|
||||
default_file_explorer = true,
|
||||
delete_to_trash = true,
|
||||
skip_confirm_for_simple_edits = true,
|
||||
view_options = {
|
||||
show_hidden = true,
|
||||
},
|
||||
})
|
||||
|
||||
-- Telescope
|
||||
require('telescope').setup({
|
||||
defaults = {
|
||||
path_display = { "smart" },
|
||||
file_ignore_patterns = { "node_modules", ".git/" },
|
||||
},
|
||||
})
|
||||
|
||||
-- Dashboard
|
||||
require('dashboard').setup({
|
||||
theme = 'doom',
|
||||
config = {
|
||||
header = {
|
||||
" ",
|
||||
" ███╗ ██╗ ███████╗ ██████╗ ██╗ ██╗ ██╗ ███╗ ███╗",
|
||||
" ████╗ ██║ ██╔════╝██╔═══██╗ ██║ ██║ ██║ ████╗ ████║",
|
||||
" ██╔██╗ ██║ █████╗ ██║ ██║ ██║ ██║ ██║ ██╔████╔██║",
|
||||
" ██║╚██╗██║ ██╔══╝ ██║ ██║ ╚██╗ ██╔╝ ██║ ██║╚██╔╝██║",
|
||||
" ██║ ╚████║ ███████╗╚██████╔╝ ╚████╔╝ ██║ ██║ ╚═╝ ██║",
|
||||
" ╚═╝ ╚═══╝ ╚══════╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝",
|
||||
" ",
|
||||
},
|
||||
center = {
|
||||
{ icon = ' ', desc = 'Find File ', action = 'Telescope find_files', key = 'f' },
|
||||
{ icon = ' ', desc = 'Find Text ', action = 'Telescope live_grep', key = 't' },
|
||||
{ icon = ' ', desc = 'Recent Files ', action = 'Telescope oldfiles', key = 'r' },
|
||||
{ icon = ' ', desc = 'File Explorer ', action = 'Oil', key = 'e' },
|
||||
{ icon = ' ', desc = 'New File ', action = 'ene | startinsert', key = 'n' },
|
||||
{ icon = ' ', desc = 'Quit Neovim ', action = 'qa', key = 'q' },
|
||||
},
|
||||
footer = { "", "⚡ Neovim 0.12 Minimal Config" },
|
||||
},
|
||||
})
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
-- 5. Keymaps
|
||||
-------------------------------------------------------------------------------
|
||||
local keymap = vim.keymap.set
|
||||
local opts = { silent = true }
|
||||
|
||||
-- File & Quit shortcuts
|
||||
keymap('n', '<leader>w', '<cmd>write<CR>', opts)
|
||||
keymap('n', '<leader>q', '<cmd>quit<CR>', opts)
|
||||
keymap('n', '<leader>QQ', '<cmd>q!<CR>', opts)
|
||||
keymap('n', '<leader>wq', '<cmd>wq<CR>', opts)
|
||||
|
||||
-- UI Toggles
|
||||
keymap('n', '<leader>r', '<cmd>set wrap!<CR>', opts)
|
||||
keymap('n', '<leader>n', '<cmd>set number! relativenumber!<CR>', opts)
|
||||
|
||||
-- File Explorer (Oil)
|
||||
keymap('n', '-', function() require('oil').open() end, { desc = 'Open parent directory in Oil' })
|
||||
keymap('n', '<leader>e', function() require('oil').open() end, { desc = 'Open parent directory in Oil' })
|
||||
|
||||
-- Telescope Keymaps
|
||||
local builtin = require('telescope.builtin')
|
||||
keymap('n', '<leader>ff', builtin.find_files, { desc = 'Find files' })
|
||||
keymap('n', '<leader>fg', builtin.live_grep, { desc = 'Live grep search' })
|
||||
keymap('n', '<leader>fb', builtin.buffers, { desc = 'Find open buffers' })
|
||||
keymap('n', '<leader>fh', builtin.help_tags, { desc = 'Find help tags' })
|
||||
40
home/config/nvim/nvim-pack-lock.json
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"plugins": {
|
||||
"blink.cmp": {
|
||||
"rev": "d26c6b0a4ea9188b9d10fdd5b180deba7675e3cd",
|
||||
"src": "https://github.com/Saghen/blink.cmp"
|
||||
},
|
||||
"blink.lib": {
|
||||
"rev": "2789206e10a0e4880f808c2aaf52bc57d876b481",
|
||||
"src": "https://github.com/Saghen/blink.lib"
|
||||
},
|
||||
"charleston.nvim": {
|
||||
"rev": "363cb2bbca78c353bb0a2014d3b160db18c9c2a8",
|
||||
"src": "https://github.com/RomanAverin/charleston.nvim"
|
||||
},
|
||||
"dashboard-nvim": {
|
||||
"rev": "f787e3462c2ee2b6117b17c1aa4ddf66cb6f57fe",
|
||||
"src": "https://github.com/nvimdev/dashboard-nvim"
|
||||
},
|
||||
"lualine.nvim": {
|
||||
"rev": "221ce6b2d999187044529f49da6554a92f740a96",
|
||||
"src": "https://github.com/nvim-lualine/lualine.nvim"
|
||||
},
|
||||
"nvim-web-devicons": {
|
||||
"rev": "2ae6958df7ced50baac5035cec0c15799eedfbf7",
|
||||
"src": "https://github.com/nvim-tree/nvim-web-devicons"
|
||||
},
|
||||
"oil.nvim": {
|
||||
"rev": "b73018b75affd13fa38e2fc94ef753b465f770d7",
|
||||
"src": "https://github.com/stevearc/oil.nvim"
|
||||
},
|
||||
"plenary.nvim": {
|
||||
"rev": "74b06c6c75e4eeb3108ec01852001636d85a932b",
|
||||
"src": "https://github.com/nvim-lua/plenary.nvim"
|
||||
},
|
||||
"telescope.nvim": {
|
||||
"rev": "427b576c16792edad01a92b89721d923c19ad60f",
|
||||
"src": "https://github.com/nvim-telescope/telescope.nvim"
|
||||
}
|
||||
}
|
||||
}
|
||||
2
home/config/ssh/config
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
Host *
|
||||
SetEnv TERM=xterm-256color
|
||||
8
home/config/ssh/id_ed25519
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABA2xrdF06
|
||||
FzXtwjxqZoFO/8AAAAGAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIMvOXXwkL3BR+pNX
|
||||
XEj1x7MiVpvCH0B3gKz/ZwuN+34VAAAAsIGyFyWBvRTZmWmcRi2febVfy2Zr/pPiR7Lr8l
|
||||
NVXLMPzxx7svkJvCD+A2S9jnI9lhgUsiEQKhG/5UsvjFVdrN7s/eICqd8dv5bxvp8y8Mrj
|
||||
9xp6pkruJBimAFdSsJKWrvnoPLU7vxm8cANBMSf9znR7eBoEcw6blKXbUx9UIQWBqt+ccq
|
||||
eLnFxNKWBhUI47Yu2sO8DV7/Zk2syklInKBz1tMP1cpIQgqCG6utJNWIZj
|
||||
-----END OPENSSH PRIVATE KEY-----
|
||||
1
home/config/ssh/id_ed25519.pub
Normal file
|
|
@ -0,0 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMvOXXwkL3BR+pNXXEj1x7MiVpvCH0B3gKz/ZwuN+34V warrentyexpired@damagedProperty
|
||||
19
home/config/ssh/known_hosts
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
[192.227.229.130]:5522 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcguEeqsjzfNtI8RvUbCCGO+n8BZPuf/jTy3OR/ejCSghjzL7rmIvDIHzjYeng5SzULabQAwnYYwTw8f6Iw2WxFM1av7F6dpH10FPX/IgUWmZHV4KOH09qXoB+VaFpkYYhnxuX1JXeQ39bTA0H2T6mLYCLTBcxmTO4sU1KroXHLKyej2Lc2AbrRsRTxKdTdMuovBrawUPBEWpUiNDBZ0OQcj7wjqtG9KT4DKiHnYXd4jBRdDvdbeLw6GL+tUUdwU9c+RUWb5W/CmBTyucHy8Psqzh3aq7QwPfkoxLtHAYjzhjxT3WXfVYCbaaCVvRVYRfoLvC8emcF0ly274D0DNih
|
||||
192.168.88.111 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMwycBkPubHw4CvD8xuR9PEK5zPmEXUavWCXQnpDZrAP
|
||||
192.168.88.111 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCkFNa3ouKyziXkCIQLOHIJ5+vzwqclSkvePhUpqOPZ5TkNZj+jKErN1Ar/7+wi7KPcuN7zxCCsH8YkU8HRZTdvbJ0aVqtI7b2EwQBqOiC/C+eyoUjGxf/TROLMjK+Ev0Fqdxib8iwOPzlQRv9490QDKRNFbxMpIC+iQ4y8l3aSzOw4R5kcvWpDn8TqpQQ1JRlWokwGMSIRijI6UyGC+yF7CoKRiBBf3BNfIKmzLUPqJolSomNwghoZleJf/FsWLvsdYhpFFOEGGSdH8tLTjCoZQ7qpLdh+/dYpAIXOsVGAFiQmhLsAj7NPuoUOoIhN7lCRNYyot0ss2l4rajwSM3KrzgIMHREuDMUhGvnE4ry2OIO6bCfikjRiRrPuu1AkRuN7XHDkx3sZzIVPn6CrS270P2Rw66rdlmUCsNCOpCSgEvH1V8w3WbHVMgJejr41pbdAyAJP2+4mc4gkV7lNmjdrXy+A0SUO5MjivVa1nyHcrUe3CRcr6DnAs6uqzolBRys=
|
||||
192.168.88.111 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBA54xsJjIRvC2MlYFS4aYUFKycBeWgBmRX5yUpkc9lYsi7R9RfpvFtBpMGoeN3FslsNuzJbpoy+uKqQI32haGpU=
|
||||
uo-memento.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFLbaDvKFt8p/yXJN8/w0vxuZ3QyH4HEHgS8hhFczRet
|
||||
uo-memento.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAoLBgsSwDYEwzsMZ8x3O2HenUuD4y7kgHVbjruIM/vBkSyuuTrGM+ctJJmKF4ars9UprrrPLQER3V6STFPJ8jjnbeDKUQ7AjucygucZe7BcR4s5J0w/KaVX6xQO/pIfNd04wZDHtoSHg44Yjjt7NYEfDC0XeJpLigZ1B2NHkOp3SE0Tu1/7AQlxRnBHfsevuHt/7VFNmFPJIYx77qPHfgHeENW0mN08fPTLJY/d8pqiAGne6DUkh6NcID1Hh4qqx5GTKjvq0b5vKzg2T/XLwC/oxDXmUTOZW2qanpKmcay0XjjTZZIAAO1dUQLVNQb8yhQ2ZBPfq/93HHOsml/9ulfCdBI7huv+fPertubZUGw/BccJQtzP+ifmOwY2G45eETZsFyOMWjsnny6fuoCtQ0VndEhEV/hEoU60MeyF9IpIhF944rHrKyLCLrEFSBW0m6xG3rCwIjhligeFOhxeH6mbuS5wQsSEa6LJcdefjIprjn/+3rxxBgFPaHb/Mtirk=
|
||||
uo-memento.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMy2o5Igq4piiQMe6s+av6HPcQz+ZtJ5cLD8AhsDKZ7KERxcgS1/37PqVsny4VHV1o1NHojM3ZYx2oyaKe139cw=
|
||||
192.168.88.100 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPKqgGyqrsOQ2EkO4+EKNk1AnAlEBtgFVmQStG30JNaz
|
||||
192.168.88.100 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCd/0letGnTTNI1YjXsJWHwtL4cz4605NABJ+D317+3dBTSD6Z7tEpmcYmjoLvaiLQ0iVenQtGjDiXF2bqM/Q6G5DwAKWiYoAp+9hlZxdV9Zqj5Q9QedmFy9eVWIXHrICHu8t0qzMM+I+2BBHUyORDVMXQ3UquGl1CrmB7nr0FpdiChtk77+LevqJSrhRmtV7qlqakw3zC99QqZNlWN3xRZAeNDfyn7HJw2yVRK+6A41lyW7w7O9YnkNjyIPhxZ4OcL0XL3JmcqKrP51+bFJVgtPPdsptCRUiAuGk75Z1BLEp0yV2cKwRH1EyTMuhezSTNeIf2fuW0MTe5KgFIrpC077pZoFHR1jwJBCGDHplf1mxoBNIlswh68mGWYmJ6FyChosT5tGPLXJtm3id+q7Z1cfDf8iEq3D1zZLnhwmho++Ink1qZevhFeK3DRmOOf4WzDPxucq5fjGnYuK920i7i4syF3gBB75LzyMBD+bmAGZsnpqXM2J08DkuqYv1ES8zE=
|
||||
192.168.88.100 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAZ5WyFSHQ9twwjHcjltJj5XXLCHZ0fOFXgZd7fTkqeQJNepWEmHYGxkF8at7p1nPA67sDP3E4X9CJeJLIbK3/s=
|
||||
192.168.88.101 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIevUeB625pXqd46hCjcGoaLHTqrS9JpUWGLEvsKVT7T
|
||||
192.168.88.101 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC4znA64J4SyI7N1P5ycIhPAJx3cLZF8zL+Mn6Sh1DJYV2BuLaKNB0GNW/KtKg9DMTQ9jRRa4y9cNJ4aQqItjCMjq0Jd5fA02KDNMKc+1DS48nYHGVpXGL8cLQhREU5/IQr3CR6Myt8v3+O0deVy3PX5xrDCt0qeGJy0Ni0jqGgr91lKPt+hXdcOIjMNknA3jT6j37htRHvqVeCijchWwlJTWgECX/bTNUshlyklpz2338B+STT2/U59tkIPYcEhvF+mOq3jqJ9n/0trHPtgJwX0VsgSMCMVaaXLVN8is9z01YIJLr3kDfQPQ4eOv3ChYSV8PqeAJwBXWge1VXRN+CCz3EzUY95OfBSHY/WeRrRUkgmi9i0mBkIAkTTuG6ygmng7qmQGojAbHROsUFtoq6ntMSOwW95Uass1BX+kwWeGjQT5rKL8oxUBfno44Mb0cjQtMsjdunDAkQXBkt2oo6O5xwnG8BU52wJdqZoeJODwcG6mY0xwLvmjXV9D5NBDfM=
|
||||
192.168.88.101 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJ5EvPw4ismdOwTKvTA6wEDrmvgwH5Yfp3CXZhDsGC9+0mK/+LdpKtQaiM7nAbkoR8Rr5+Zq63VfpImGmCb/8Ro=
|
||||
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
|
||||
github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
|
||||
github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
|
||||
[192.227.229.130]:5522 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJzdoiAvNrdxRzNOSI3APdJaZOBNTzz7yuJpSg+2h28E0Pprk3VmyO/zjYZ6EHxVSmG4ElimFeNL11D7DsBN5FA=
|
||||
[192.227.229.130]:5522 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKTVXE1v5egp5iHVc9R8o/0FipXIJAZ9Rc6ovyrORgWy
|
||||
192.168.88.1 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDgD1FYF6x5ouEEog0lrs8DIgEIYjGfq3xE25y3dGDvZ
|
||||
16
home/config/ssh/known_hosts.old
Executable file
|
|
@ -0,0 +1,16 @@
|
|||
[192.227.229.130]:5522 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcguEeqsjzfNtI8RvUbCCGO+n8BZPuf/jTy3OR/ejCSghjzL7rmIvDIHzjYeng5SzULabQAwnYYwTw8f6Iw2WxFM1av7F6dpH10FPX/IgUWmZHV4KOH09qXoB+VaFpkYYhnxuX1JXeQ39bTA0H2T6mLYCLTBcxmTO4sU1KroXHLKyej2Lc2AbrRsRTxKdTdMuovBrawUPBEWpUiNDBZ0OQcj7wjqtG9KT4DKiHnYXd4jBRdDvdbeLw6GL+tUUdwU9c+RUWb5W/CmBTyucHy8Psqzh3aq7QwPfkoxLtHAYjzhjxT3WXfVYCbaaCVvRVYRfoLvC8emcF0ly274D0DNih
|
||||
192.168.88.111 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMwycBkPubHw4CvD8xuR9PEK5zPmEXUavWCXQnpDZrAP
|
||||
192.168.88.111 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCkFNa3ouKyziXkCIQLOHIJ5+vzwqclSkvePhUpqOPZ5TkNZj+jKErN1Ar/7+wi7KPcuN7zxCCsH8YkU8HRZTdvbJ0aVqtI7b2EwQBqOiC/C+eyoUjGxf/TROLMjK+Ev0Fqdxib8iwOPzlQRv9490QDKRNFbxMpIC+iQ4y8l3aSzOw4R5kcvWpDn8TqpQQ1JRlWokwGMSIRijI6UyGC+yF7CoKRiBBf3BNfIKmzLUPqJolSomNwghoZleJf/FsWLvsdYhpFFOEGGSdH8tLTjCoZQ7qpLdh+/dYpAIXOsVGAFiQmhLsAj7NPuoUOoIhN7lCRNYyot0ss2l4rajwSM3KrzgIMHREuDMUhGvnE4ry2OIO6bCfikjRiRrPuu1AkRuN7XHDkx3sZzIVPn6CrS270P2Rw66rdlmUCsNCOpCSgEvH1V8w3WbHVMgJejr41pbdAyAJP2+4mc4gkV7lNmjdrXy+A0SUO5MjivVa1nyHcrUe3CRcr6DnAs6uqzolBRys=
|
||||
192.168.88.111 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBA54xsJjIRvC2MlYFS4aYUFKycBeWgBmRX5yUpkc9lYsi7R9RfpvFtBpMGoeN3FslsNuzJbpoy+uKqQI32haGpU=
|
||||
uo-memento.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFLbaDvKFt8p/yXJN8/w0vxuZ3QyH4HEHgS8hhFczRet
|
||||
uo-memento.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAoLBgsSwDYEwzsMZ8x3O2HenUuD4y7kgHVbjruIM/vBkSyuuTrGM+ctJJmKF4ars9UprrrPLQER3V6STFPJ8jjnbeDKUQ7AjucygucZe7BcR4s5J0w/KaVX6xQO/pIfNd04wZDHtoSHg44Yjjt7NYEfDC0XeJpLigZ1B2NHkOp3SE0Tu1/7AQlxRnBHfsevuHt/7VFNmFPJIYx77qPHfgHeENW0mN08fPTLJY/d8pqiAGne6DUkh6NcID1Hh4qqx5GTKjvq0b5vKzg2T/XLwC/oxDXmUTOZW2qanpKmcay0XjjTZZIAAO1dUQLVNQb8yhQ2ZBPfq/93HHOsml/9ulfCdBI7huv+fPertubZUGw/BccJQtzP+ifmOwY2G45eETZsFyOMWjsnny6fuoCtQ0VndEhEV/hEoU60MeyF9IpIhF944rHrKyLCLrEFSBW0m6xG3rCwIjhligeFOhxeH6mbuS5wQsSEa6LJcdefjIprjn/+3rxxBgFPaHb/Mtirk=
|
||||
uo-memento.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMy2o5Igq4piiQMe6s+av6HPcQz+ZtJ5cLD8AhsDKZ7KERxcgS1/37PqVsny4VHV1o1NHojM3ZYx2oyaKe139cw=
|
||||
192.168.88.100 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPKqgGyqrsOQ2EkO4+EKNk1AnAlEBtgFVmQStG30JNaz
|
||||
192.168.88.100 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCd/0letGnTTNI1YjXsJWHwtL4cz4605NABJ+D317+3dBTSD6Z7tEpmcYmjoLvaiLQ0iVenQtGjDiXF2bqM/Q6G5DwAKWiYoAp+9hlZxdV9Zqj5Q9QedmFy9eVWIXHrICHu8t0qzMM+I+2BBHUyORDVMXQ3UquGl1CrmB7nr0FpdiChtk77+LevqJSrhRmtV7qlqakw3zC99QqZNlWN3xRZAeNDfyn7HJw2yVRK+6A41lyW7w7O9YnkNjyIPhxZ4OcL0XL3JmcqKrP51+bFJVgtPPdsptCRUiAuGk75Z1BLEp0yV2cKwRH1EyTMuhezSTNeIf2fuW0MTe5KgFIrpC077pZoFHR1jwJBCGDHplf1mxoBNIlswh68mGWYmJ6FyChosT5tGPLXJtm3id+q7Z1cfDf8iEq3D1zZLnhwmho++Ink1qZevhFeK3DRmOOf4WzDPxucq5fjGnYuK920i7i4syF3gBB75LzyMBD+bmAGZsnpqXM2J08DkuqYv1ES8zE=
|
||||
192.168.88.100 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAZ5WyFSHQ9twwjHcjltJj5XXLCHZ0fOFXgZd7fTkqeQJNepWEmHYGxkF8at7p1nPA67sDP3E4X9CJeJLIbK3/s=
|
||||
192.168.88.101 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIevUeB625pXqd46hCjcGoaLHTqrS9JpUWGLEvsKVT7T
|
||||
192.168.88.101 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC4znA64J4SyI7N1P5ycIhPAJx3cLZF8zL+Mn6Sh1DJYV2BuLaKNB0GNW/KtKg9DMTQ9jRRa4y9cNJ4aQqItjCMjq0Jd5fA02KDNMKc+1DS48nYHGVpXGL8cLQhREU5/IQr3CR6Myt8v3+O0deVy3PX5xrDCt0qeGJy0Ni0jqGgr91lKPt+hXdcOIjMNknA3jT6j37htRHvqVeCijchWwlJTWgECX/bTNUshlyklpz2338B+STT2/U59tkIPYcEhvF+mOq3jqJ9n/0trHPtgJwX0VsgSMCMVaaXLVN8is9z01YIJLr3kDfQPQ4eOv3ChYSV8PqeAJwBXWge1VXRN+CCz3EzUY95OfBSHY/WeRrRUkgmi9i0mBkIAkTTuG6ygmng7qmQGojAbHROsUFtoq6ntMSOwW95Uass1BX+kwWeGjQT5rKL8oxUBfno44Mb0cjQtMsjdunDAkQXBkt2oo6O5xwnG8BU52wJdqZoeJODwcG6mY0xwLvmjXV9D5NBDfM=
|
||||
192.168.88.101 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJ5EvPw4ismdOwTKvTA6wEDrmvgwH5Yfp3CXZhDsGC9+0mK/+LdpKtQaiM7nAbkoR8Rr5+Zq63VfpImGmCb/8Ro=
|
||||
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
|
||||
github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
|
||||
github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
|
||||
30
home/config/tmux/tmux.conf
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
set -g mouse on
|
||||
unbind C-b
|
||||
set-option -g prefix C-Space
|
||||
set -g renumber-windows on
|
||||
set -g detach-on-destroy off
|
||||
set -g set-clipboard on
|
||||
unbind r
|
||||
bind r source-file ~/.config/tmux/tmux.conf
|
||||
bind h split-window -v -c "#{pane_current_path}"
|
||||
bind v split-window -h -c "#{pane_current_path}"
|
||||
bind X confirm-before -p "Kill session #S (y/n)" kill-session
|
||||
set -g status-position top
|
||||
set -g status-style "bg=default"
|
||||
set -g status-justify "absolute-centre"
|
||||
setw -g pane-border-status top
|
||||
setw -g pane-border-format " "
|
||||
setw -g pane-active-border-style "bg=default, fg=#E0E0E0"
|
||||
setw -g pane-border-style "bg=default, fg=#E0E0E0"
|
||||
setw -g pane-border-lines single
|
||||
set -g window-status-current-format ""
|
||||
set -g window-status-format ""
|
||||
set -g window-status-separator ""
|
||||
set -g status-left-length 100
|
||||
set -g status-left "#{?client_prefix,#[fg=#CC0000] #S ,#[fg=#CCCC00] #S, #[fg=#66CC00] #S }"
|
||||
set -ga status-left "#[bg=default,fg=#e0e0e0,none]│"
|
||||
set -ga status-left "#[bg=default,fg=#e0e0e0] #{pane_current_command} "
|
||||
set -ga status-left "#[bg=default,fg=#e0e0e0,none]│"
|
||||
set -ga status-left "#[bg=default,fg=#0080ff] #{=/-32/...:#{s|/home/$USER|~|:pane_current_path}} "
|
||||
set -g status-right ""
|
||||
set -g status-right-length 0
|
||||
12
home/config/tmuxinator/Workspace.yml
Executable file
|
|
@ -0,0 +1,12 @@
|
|||
name: Workspace
|
||||
root: ~/
|
||||
windows:
|
||||
- setup:
|
||||
layout: main-horizontal
|
||||
options:
|
||||
main-pane-height: 90%
|
||||
panes:
|
||||
- Dev:
|
||||
- clear
|
||||
- Main:
|
||||
- clear
|
||||
BIN
home/files/Wallpapers/0-ship-at-sea.jpg
Executable file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
home/files/Wallpapers/1-matte-black.jpg
Executable file
|
After Width: | Height: | Size: 1,010 KiB |
BIN
home/files/Wallpapers/2-osaka-jade-bg.jpg
Executable file
|
After Width: | Height: | Size: 1 MiB |
BIN
home/files/Wallpapers/3-ristretto.jpg
Executable file
|
After Width: | Height: | Size: 798 KiB |
BIN
home/files/Wallpapers/BeachCars.png
Executable file
|
After Width: | Height: | Size: 6.1 MiB |
BIN
home/files/Wallpapers/CarOnMarsFront.png
Executable file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
home/files/Wallpapers/CarOnMarsRear.jpg
Executable file
|
After Width: | Height: | Size: 3.5 MiB |
BIN
home/files/Wallpapers/CarOnMarsSide.png
Executable file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
home/files/Wallpapers/CityStreetDay.jpg
Executable file
|
After Width: | Height: | Size: 559 KiB |
BIN
home/files/Wallpapers/CoffeeBattery.png
Executable file
|
After Width: | Height: | Size: 38 KiB |
BIN
home/files/Wallpapers/Dark_Nature.png
Executable file
|
After Width: | Height: | Size: 3.5 MiB |
BIN
home/files/Wallpapers/DesertSun.png
Executable file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
home/files/Wallpapers/FourSeasons.jpg
Executable file
|
After Width: | Height: | Size: 6.5 MiB |
BIN
home/files/Wallpapers/FutureCityScape.jpg
Executable file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
home/files/Wallpapers/Garage.jpg
Executable file
|
After Width: | Height: | Size: 994 KiB |
BIN
home/files/Wallpapers/GasStationBench.jpg
Executable file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
home/files/Wallpapers/GeoMountian.jpeg
Executable file
|
After Width: | Height: | Size: 441 KiB |
BIN
home/files/Wallpapers/NightGlow.jpg
Executable file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
home/files/Wallpapers/Rainnight.jpg
Executable file
|
After Width: | Height: | Size: 3.6 MiB |
BIN
home/files/Wallpapers/SnowyCabin.png
Executable file
|
After Width: | Height: | Size: 7.5 MiB |
BIN
home/files/Wallpapers/StoreFront.jpg
Executable file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
home/files/Wallpapers/Summer.jpg
Executable file
|
After Width: | Height: | Size: 469 KiB |
BIN
home/files/Wallpapers/SynthLandScape.jpg
Executable file
|
After Width: | Height: | Size: 626 KiB |
BIN
home/files/Wallpapers/SynthSun.png
Executable file
|
After Width: | Height: | Size: 3.2 MiB |
BIN
home/files/Wallpapers/TheTree.jpg
Executable file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
home/files/Wallpapers/Walkway.jpg
Executable file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
home/files/Wallpapers/blue.jpg
Executable file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
home/files/Wallpapers/clouds.png
Executable file
|
After Width: | Height: | Size: 3.7 MiB |
BIN
home/files/Wallpapers/gruv-gasstation.png
Executable file
|
After Width: | Height: | Size: 913 KiB |
BIN
home/files/Wallpapers/panes.jpg
Executable file
|
After Width: | Height: | Size: 203 KiB |
BIN
home/files/Wallpapers/result.png
Executable file
|
After Width: | Height: | Size: 276 KiB |
BIN
home/files/Wallpapers/space.png
Executable file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
home/files/Wallpapers/spacehawks.png
Executable file
|
After Width: | Height: | Size: 12 MiB |
BIN
home/files/Wallpapers/summer-time.jpg
Executable file
|
After Width: | Height: | Size: 684 KiB |
BIN
home/files/Wallpapers/wallhaven-2yl6px.jpg
Executable file
|
After Width: | Height: | Size: 382 KiB |
10722
home/files/nerdfont.csv
Executable file
91
home/home.nix
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./modules/fastfetch.nix
|
||||
./modules/fuzzel.nix
|
||||
./modules/scripts.nix
|
||||
];
|
||||
home.username = "warrentyexpired";
|
||||
home.homeDirectory = "/home/warrentyexpired";
|
||||
home.stateVersion = "26.05"; # Please read the comment before changing.
|
||||
|
||||
|
||||
home.packages = [
|
||||
];
|
||||
|
||||
home.file = {
|
||||
"./.config/tmux/tmux.conf" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/NixOS/home/config/tmux/tmux.conf";
|
||||
};
|
||||
"./.config/nvim" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/NixOS/home/config/nvim";
|
||||
recursive = true;
|
||||
};
|
||||
"./.config/tmuxinator" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/NixOS/home/config/tmuxinator";
|
||||
recursive = true;
|
||||
};
|
||||
"./.config/fish" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/NixOS/home/config/fish";
|
||||
recursive = true;
|
||||
};
|
||||
"./.config/ghostty" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/NixOS/home/config/ghostty";
|
||||
recursive = true;
|
||||
};
|
||||
"./.config/niri" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/NixOS/home/config/niri";
|
||||
recursive = true;
|
||||
};
|
||||
"./.ssh" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/NixOS/home/config/ssh";
|
||||
recursive = true;
|
||||
};
|
||||
"./Pictures/Wallpapers" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/NixOS/home/files/Wallpapers";
|
||||
recursive = true;
|
||||
};
|
||||
"./.local/share/applications/TazUO.desktop" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/NixOS/home/TazUO.desktop";
|
||||
};
|
||||
};
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "adw-gtk3-dark";
|
||||
package = pkgs.adw-gtk3;
|
||||
};
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
};
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
};
|
||||
};
|
||||
# Home Manager can also manage your environment variables through
|
||||
# 'home.sessionVariables'. These will be explicitly sourced when using a
|
||||
# shell provided by Home Manager. If you don't want to manage your shell
|
||||
# through Home Manager then you have to manually source 'hm-session-vars.sh'
|
||||
# located at either
|
||||
#
|
||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||
#
|
||||
# or
|
||||
#
|
||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
||||
#
|
||||
# or
|
||||
#
|
||||
# /etc/profiles/per-user/warrentyexpired/etc/profile.d/hm-session-vars.sh
|
||||
#
|
||||
home.sessionVariables = {
|
||||
# EDITOR = "emacs";
|
||||
};
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
}
|
||||
107
home/modules/fastfetch.nix
Executable file
|
|
@ -0,0 +1,107 @@
|
|||
{ config, pkgs, ... }: {
|
||||
programs.fastfetch = {
|
||||
enable = true;
|
||||
settings = {
|
||||
display = {
|
||||
separator = " -> ";
|
||||
};
|
||||
modules = [
|
||||
{
|
||||
type = "custom";
|
||||
format = "{#90}╭─────────────────────────────────────────────────╮";
|
||||
}
|
||||
{ type = "title"; }
|
||||
{
|
||||
type = "custom";
|
||||
format = "{#90}╰─────────────────────────────────────────────────╯";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "{#90}╭─────────────────────────────────────────────────┐";
|
||||
}
|
||||
# OS and Software Info
|
||||
{
|
||||
type = "os";
|
||||
key = " OS";
|
||||
format = "{pretty-name}";
|
||||
keyColor = "36";
|
||||
}
|
||||
{
|
||||
type = "kernel";
|
||||
key = "│ ├ Kernel";
|
||||
keyColor = "36";
|
||||
}
|
||||
{
|
||||
type = "uptime";
|
||||
key = "│ ├ Uptime";
|
||||
keyColor = "36";
|
||||
}
|
||||
{
|
||||
type = "packages";
|
||||
key = "│ ├ Packages";
|
||||
keyColor = "36";
|
||||
}
|
||||
{
|
||||
type = "shell";
|
||||
key = "│ ├ Shell";
|
||||
keyColor = "36";
|
||||
}
|
||||
{
|
||||
type = "wm";
|
||||
key = "│ ├ WM";
|
||||
keyColor = "36";
|
||||
}
|
||||
{
|
||||
type = "terminal";
|
||||
key = "│ └ Terminal";
|
||||
keyColor = "36";
|
||||
}
|
||||
# Hardware Info
|
||||
{
|
||||
type = "host";
|
||||
key = " PC";
|
||||
keyColor = "green";
|
||||
}
|
||||
{
|
||||
type = "cpu";
|
||||
key = "│ ├ CPU";
|
||||
keyColor = "green";
|
||||
}
|
||||
{
|
||||
type = "gpu";
|
||||
key = "│ ├ GPU";
|
||||
keyColor = "green";
|
||||
}
|
||||
{
|
||||
type = "disk";
|
||||
key = "│ ├ Disk";
|
||||
keyColor = "green";
|
||||
}
|
||||
{
|
||||
type = "memory";
|
||||
key = "│ ├ RAM";
|
||||
keyColor = "green";
|
||||
}
|
||||
{
|
||||
type = "swap";
|
||||
key = "│ ├ Swap";
|
||||
keyColor = "green";
|
||||
}
|
||||
{
|
||||
type = "display";
|
||||
key = "│ └ Monitor";
|
||||
keyColor = "green";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "{#90}╰─────────────────────────────────────────────────╯";
|
||||
}
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "{#90}╰─────────{#90} {#31} {#32} {#33} {#34} {#35} {#36} {#37} {#38} {#39} {#90} ─────────╯";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
27
home/modules/fuzzel.nix
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.fuzzel = {
|
||||
enable = true;
|
||||
settings = {
|
||||
main = {
|
||||
font = "JetBrainsMono Nerd Font:size=16"; # Thin often maps to weight in Nix
|
||||
dpi-aware = "no";
|
||||
terminal = "${pkgs.ghostty}/bin/ghostty";
|
||||
lines = 20;
|
||||
width = 50;
|
||||
icons-enabled = "yes";
|
||||
icon-theme = "Papirus-Nord";
|
||||
};
|
||||
colors = {
|
||||
background = "121212ee";
|
||||
text = "ffffffff";
|
||||
selection = "444444ee";
|
||||
selection-text = "acbeb1ff";
|
||||
border = "3c4541ff";
|
||||
};
|
||||
border = {
|
||||
radius = 5;
|
||||
width = 2; # Added a small width so your border color actually shows
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
18
home/modules/scripts.nix
Executable file
|
|
@ -0,0 +1,18 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
# This packages your script and its dependencies
|
||||
nerdfont-search = pkgs.writeShellScriptBin "nfPicker" ''
|
||||
# We reference the CSV file.
|
||||
# If you put nerdfont.csv in the same folder as this nix file:
|
||||
CSV_PATH="${../files/nerdfont.csv}"
|
||||
|
||||
# Run the pipeline using packages from the Nix store
|
||||
cat "$CSV_PATH" | ${pkgs.fuzzel}/bin/fuzzel -d | ${pkgs.gawk}/bin/gawk -F, '{printf $3}' | ${pkgs.wl-clipboard}/bin/wl-copy
|
||||
${pkgs.wl-clipboard}/bin/wl-paste
|
||||
'';
|
||||
in
|
||||
{
|
||||
home.packages = [
|
||||
nerdfont-search
|
||||
];
|
||||
}
|
||||