mirror of
https://github.com/ForeverPyrite/dotfiles.git
synced 2025-12-10 01:08:06 +00:00
Compare commits
16 Commits
52fbaae9ef
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a9d2cb3e29 | ||
|
|
05d7845b60 | ||
|
|
afce2ca400 | ||
|
|
49dadf232b | ||
|
|
553218aa5f | ||
|
|
c17f441e5f | ||
|
|
3158e1d7de | ||
|
|
fcb41ff7b3 | ||
|
|
25d46ef432 | ||
|
|
a407e267b5 | ||
|
|
412a7fb813 | ||
|
|
0db4cb9fe6 | ||
|
|
f33e6a77a3 | ||
|
|
8ebbaf169d | ||
|
|
6be59e2951 | ||
|
|
9408176af0 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -7,3 +7,5 @@ foo.*
|
|||||||
*.log
|
*.log
|
||||||
data
|
data
|
||||||
.aider*
|
.aider*
|
||||||
|
lazy-lock.json
|
||||||
|
**/.uuid
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ That being said, I have actually found these utilities to vastly improve upon th
|
|||||||
- `atuin` - This is kinda like zoxide, but for your shell commands. Pressing the up arrow now shows your entire command history, and you can fuzzy find through them. I imagine it's more secure than .bash_history too.
|
- `atuin` - This is kinda like zoxide, but for your shell commands. Pressing the up arrow now shows your entire command history, and you can fuzzy find through them. I imagine it's more secure than .bash_history too.
|
||||||
- `dua-cli` - Disk-usage-analyzer. Plain and simple. , so this'll do. Useful for my limited storage cloud VPS and stuff.
|
- `dua-cli` - Disk-usage-analyzer. Plain and simple. , so this'll do. Useful for my limited storage cloud VPS and stuff.
|
||||||
- `starship` - Super customizable cross-shell prompt. Very informative, yet very brief (at least, by default).
|
- `starship` - Super customizable cross-shell prompt. Very informative, yet very brief (at least, by default).
|
||||||
|
- `tree-sitter-cli` - Dependency for some neovim stuff
|
||||||
- `bob-nvim` - Neovim manager. Simple as that.
|
- `bob-nvim` - Neovim manager. Simple as that.
|
||||||
- `alacritty` - GPU accelerated and extremely customizable terminal emulator
|
- `alacritty` - GPU accelerated and extremely customizable terminal emulator
|
||||||
- `cargo-cache` - Actually just used for this script so far. It'll clean up all the, likely useless, sizable compiled dependencies used to build all of this.
|
- `cargo-cache` - Actually just used for this script so far. It'll clean up all the, likely useless, sizable compiled dependencies used to build all of this.
|
||||||
|
|||||||
69
TODO.md
Normal file
69
TODO.md
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
|
||||||
|
# Considerations
|
||||||
|
|
||||||
|
## Clipboard manager
|
||||||
|
PLEASE :sob:
|
||||||
|
|
||||||
|
## Atuin
|
||||||
|
Is this really worth the extra features or should I just use Ctrl+R with fzf?
|
||||||
|
|
||||||
|
## WezTerm
|
||||||
|
Alacritty is putting in the work, and it's exactly what I wanted.
|
||||||
|
However, as I'm living inside of the terminal, I'm considering taking
|
||||||
|
advantage of TUIs that utilize features that TEs like kitty and WezTerm
|
||||||
|
provide.
|
||||||
|
|
||||||
|
Most of the futures a terminal like WezTerm has built in are easily
|
||||||
|
replaced by tmux and it's plugins, I feel
|
||||||
|
|
||||||
|
## Tmux
|
||||||
|
|
||||||
|
### A proper system
|
||||||
|
|
||||||
|
I still need to figure things out with stuff like tmux-ressurect, curating a good way for me to manage my workflows
|
||||||
|
|
||||||
|
### The infinite plugin grind.
|
||||||
|
Of course, this never stops.
|
||||||
|
|
||||||
|
The only thing I want want is a way to manage sessions within tmux, as explained below.
|
||||||
|
|
||||||
|
tmux-browser seems cool and useful for productivity, since the web browser is where I end up getting distracted the most
|
||||||
|
(it's why I'm here instead of finishing up Arch Linux stuff)
|
||||||
|
|
||||||
|
### `exec`ing off to `tmux` on `conifg.fish`
|
||||||
|
|
||||||
|
As it stands, when I enter a login shell, fish enters the "home" session
|
||||||
|
This is weird though.
|
||||||
|
|
||||||
|
1. It attaches to the same session, which means it shares the active window.
|
||||||
|
This means that if I open another terminal, it will attach to the home session.
|
||||||
|
|
||||||
|
This is good in the sense it is requiring me to be more thoughtful of creating new
|
||||||
|
windows, instead of having 15 unnamed alacritty windows.
|
||||||
|
However, it's very unexpected and confusing
|
||||||
|
|
||||||
|
### On-startup processes
|
||||||
|
|
||||||
|
Would be good for the above, have each session have a window and some panes
|
||||||
|
when the system starts for services.
|
||||||
|
These would be different than the tmux continum restorations.
|
||||||
|
|
||||||
|
An example would be like a "syncthing" session with a window running the
|
||||||
|
`syncthing` command.
|
||||||
|
This example is poor since it'd be more effective to run a system service,
|
||||||
|
but the point remains.
|
||||||
|
|
||||||
|
There is surely some plugin or utility to help programmatically create sessions
|
||||||
|
within tmux, after all
|
||||||
|
|
||||||
|
|
||||||
|
# Things to do
|
||||||
|
|
||||||
|
## Customize prompt
|
||||||
|
|
||||||
|
### Starship
|
||||||
|
- Change colors
|
||||||
|
- Find better Git Status Symbols
|
||||||
|
|
||||||
|
### Fish
|
||||||
|
- Typed things (since these aren't overwritten by Starship)
|
||||||
@@ -1,17 +1,20 @@
|
|||||||
|
|
||||||
[font]
|
[font]
|
||||||
normal = { family = "Hack Nerd Font", style = "Regular" }
|
normal = { family = "Hack Nerd Font Mono", style = "Regular" }
|
||||||
bold = { family = "Hack Nerd Font", style = "Bold" }
|
bold = { family = "Hack Nerd Font Mono", style = "Bold" }
|
||||||
italic = { family = "Hack Nerd Font", style = "Italic" }
|
italic = { family = "Hack Nerd Font Mono", style = "Italic" }
|
||||||
size = 9.0
|
# There is no winning with this stupid ass monitor...
|
||||||
|
# Yeah I need some kind of size aware resizing low key.
|
||||||
|
size = 10.0
|
||||||
|
|
||||||
[window]
|
[window]
|
||||||
decorations = "None"
|
decorations = "None"
|
||||||
opacity = 0.85
|
# Doesn't make very much sense with niri as it stands
|
||||||
startup_mode = "Fullscreen"
|
# opacity = 0.85
|
||||||
|
# startup_mode = "Fullscreen"
|
||||||
|
|
||||||
[terminal.shell]
|
[terminal.shell]
|
||||||
program = "/usr/bin/fish"
|
program = "/usr/bin/fish"
|
||||||
args = ["-l"]
|
args = ["-l"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
20
anyrun/.config/anyrun/applications.ron
Normal file
20
anyrun/.config/anyrun/applications.ron
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
Config(
|
||||||
|
// Also show the Desktop Actions defined in the desktop files, e.g. "New Window" from LibreWolf
|
||||||
|
desktop_actions: true,
|
||||||
|
|
||||||
|
max_entries: 5,
|
||||||
|
|
||||||
|
// A command to preprocess the command from the desktop file. The commands should take arguments in this order:
|
||||||
|
// command_name <term|no-term> <command>
|
||||||
|
// preprocess_exec_script: Some("/home/user/.local/share/anyrun/preprocess_application_command.sh")
|
||||||
|
|
||||||
|
// The terminal used for running terminal based desktop entries, if left as `None` a static list of terminals is used
|
||||||
|
// to determine what terminal to use.
|
||||||
|
terminal: Some(Terminal(
|
||||||
|
// The main terminal command
|
||||||
|
command: "alacritty",
|
||||||
|
// What arguments should be passed to the terminal process to run the command correctly
|
||||||
|
// {} is replaced with the command in the desktop entry
|
||||||
|
args: "-e {}",
|
||||||
|
)),
|
||||||
|
)
|
||||||
80
anyrun/.config/anyrun/config.ron
Normal file
80
anyrun/.config/anyrun/config.ron
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
Config(
|
||||||
|
// Position/size fields use an enum for the value, it can be either:
|
||||||
|
// Absolute(n): The absolute value in pixels
|
||||||
|
// Fraction(n): A fraction of the width or height of the full screen (depends on exclusive zones and the settings related to them) window respectively
|
||||||
|
|
||||||
|
// The horizontal position, adjusted so that Relative(0.5) always centers the runner
|
||||||
|
x: Fraction(0.5),
|
||||||
|
|
||||||
|
// The vertical position, works the same as `x`
|
||||||
|
y: Absolute(0),
|
||||||
|
|
||||||
|
// The width of the runner
|
||||||
|
width: Absolute(800),
|
||||||
|
|
||||||
|
// The minimum height of the runner, the runner will expand to fit all the entries
|
||||||
|
// NOTE: If this is set to 0, the window will never shrink after being expanded
|
||||||
|
height: Absolute(1),
|
||||||
|
|
||||||
|
// Hide match and plugin info icons
|
||||||
|
hide_icons: false,
|
||||||
|
|
||||||
|
// ignore exclusive zones, f.e. Waybar
|
||||||
|
ignore_exclusive_zones: false,
|
||||||
|
|
||||||
|
// Layer shell layer: Background, Bottom, Top, Overlay
|
||||||
|
layer: Overlay,
|
||||||
|
|
||||||
|
// Hide the plugin info panel
|
||||||
|
hide_plugin_info: false,
|
||||||
|
|
||||||
|
// Close window when a click outside the main box is received
|
||||||
|
close_on_click: false,
|
||||||
|
|
||||||
|
// Show search results immediately when Anyrun starts
|
||||||
|
show_results_immediately: false,
|
||||||
|
|
||||||
|
// Limit amount of entries shown in total
|
||||||
|
max_entries: None,
|
||||||
|
|
||||||
|
// List of plugins to be loaded by default, can be specified with a relative path to be loaded from the
|
||||||
|
// `<anyrun config dir>/plugins` directory or with an absolute path to just load the file the path points to.
|
||||||
|
//
|
||||||
|
// The order of plugins here specifies the order in which they appear
|
||||||
|
// in the results. As in it works as a priority for the plugins.
|
||||||
|
plugins: [
|
||||||
|
"libapplications.so",
|
||||||
|
"libkidex.so"
|
||||||
|
"librink.so",
|
||||||
|
"libniri_focus.so",
|
||||||
|
"libshell.so",
|
||||||
|
],
|
||||||
|
|
||||||
|
keybinds: [
|
||||||
|
Keybind(
|
||||||
|
key: "Return",
|
||||||
|
action: Select,
|
||||||
|
),
|
||||||
|
Keybind(
|
||||||
|
key: "Up",
|
||||||
|
action: Up,
|
||||||
|
),
|
||||||
|
Keybind(
|
||||||
|
key: "Down",
|
||||||
|
action: Down,
|
||||||
|
),
|
||||||
|
Keybind(
|
||||||
|
key: "ISO_Left_Tab",
|
||||||
|
action: Up,
|
||||||
|
shift: true,
|
||||||
|
),
|
||||||
|
Keybind(
|
||||||
|
key: "Tab",
|
||||||
|
action: Down,
|
||||||
|
),
|
||||||
|
Keybind(
|
||||||
|
key: "Escape",
|
||||||
|
action: Close,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
3
anyrun/.config/anyrun/kidex.ron
Normal file
3
anyrun/.config/anyrun/kidex.ron
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
Config(
|
||||||
|
max_entries: 3,
|
||||||
|
)
|
||||||
3
anyrun/.config/anyrun/niri-focus.ron
Normal file
3
anyrun/.config/anyrun/niri-focus.ron
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
Config(
|
||||||
|
max_entries: 2,
|
||||||
|
)
|
||||||
64
anyrun/.config/anyrun/style.css
Normal file
64
anyrun/.config/anyrun/style.css
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
window {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
box.main {
|
||||||
|
padding: 5px;
|
||||||
|
margin: 10px;
|
||||||
|
border-radius: 10px;
|
||||||
|
border: 2px solid @theme_selected_bg_color;
|
||||||
|
background-color: @theme_bg_color;
|
||||||
|
box-shadow: 0 0 5px black;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
text {
|
||||||
|
min-height: 30px;
|
||||||
|
padding: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.matches {
|
||||||
|
background-color: rgba(0, 0, 0, 0);
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
box.plugin:first-child {
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
box.plugin.info {
|
||||||
|
min-width: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
list.plugin {
|
||||||
|
background-color: rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
label.match.description {
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
label.plugin.info {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.match {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.match:selected {
|
||||||
|
border-left: 4px solid @theme_selected_bg_color;
|
||||||
|
background: transparent;
|
||||||
|
animation: fade 0.1s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fade {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
13
anyrun/.config/anyrun/websearch.ron
Normal file
13
anyrun/.config/anyrun/websearch.ron
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Config(
|
||||||
|
prefix: "?",
|
||||||
|
// Options: Google, Ecosia, Bing, DuckDuckGo, Custom
|
||||||
|
//
|
||||||
|
// Custom engines can be defined as such:
|
||||||
|
// Custom(
|
||||||
|
// name: "Searx",
|
||||||
|
// url: "searx.be/?q={}",
|
||||||
|
// )
|
||||||
|
//
|
||||||
|
// NOTE: `{}` is replaced by the search query and `https://` is automatically added in front.
|
||||||
|
engines: [Google]
|
||||||
|
)
|
||||||
@@ -12,6 +12,7 @@ esac
|
|||||||
if ! command -v fish &>/dev/null; then
|
if ! command -v fish &>/dev/null; then
|
||||||
# don't put duplicate lines or lines starting with space in the history.
|
# don't put duplicate lines or lines starting with space in the history.
|
||||||
# See bash(1) for more options
|
# See bash(1) for more options
|
||||||
|
# actually I'll probably not wanna do any history at all with atuin
|
||||||
HISTCONTROL=ignoreboth
|
HISTCONTROL=ignoreboth
|
||||||
|
|
||||||
# append to the history file, don't overwrite it
|
# append to the history file, don't overwrite it
|
||||||
@@ -119,7 +120,12 @@ if ! command -v fish &>/dev/null; then
|
|||||||
. "$HOME/.cargo/env"
|
. "$HOME/.cargo/env"
|
||||||
|
|
||||||
# impl Bash for FZF
|
# impl Bash for FZF
|
||||||
export FZF_DEFAULT_OPTS='--tmux'
|
export FZF_DEFAULT_OPTS=" \
|
||||||
|
--color=bg+:#313244,bg:#1E1E2E,spinner:#F5E0DC,hl:#F38BA8 \
|
||||||
|
--color=fg:#CDD6F4,header:#F38BA8,info:#CBA6F7,pointer:#F5E0DC \
|
||||||
|
--color=marker:#B4BEFE,fg+:#CDD6F4,prompt:#CBA6F7,hl+:#F38BA8 \
|
||||||
|
--color=selected-bg:#45475A \
|
||||||
|
--color=border:#6C7086,label:#CDD6F4"
|
||||||
eval "$(fzf --bash)"
|
eval "$(fzf --bash)"
|
||||||
|
|
||||||
# impl Bash for Autin
|
# impl Bash for Autin
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
# Because lowkey typing "exti" and then "exit" and having
|
||||||
|
# nvim hang for a sec a lil annoying
|
||||||
|
alias exit "exit 0"
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# Core "Rust-first" Command Replacements
|
# Core "Rust-first" Command Replacements
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
@@ -23,7 +27,7 @@ alias la "eza -a --icons --group-directories-first"
|
|||||||
alias lt "eza --tree --level=2 --long --git --icons"
|
alias lt "eza --tree --level=2 --long --git --icons"
|
||||||
|
|
||||||
# tree: deadass replacing the tree command
|
# tree: deadass replacing the tree command
|
||||||
alias tree "eza -T"
|
alias tree "eza -T --git --icons"
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# Context-Aware Aliases (Docker)
|
# Context-Aware Aliases (Docker)
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
# ~/.config/fish/config.fish
|
|
||||||
|
|
||||||
# --- Environment Variables ---
|
# --- Environment Variables ---
|
||||||
# Set a default editor (used by many command-line tools)
|
# Set a default editor (used by many command-line tools)
|
||||||
set -x EDITOR nvim
|
set -x EDITOR nvim
|
||||||
@@ -9,13 +7,11 @@ set -x EDITOR nvim
|
|||||||
fish_add_path "$HOME/.cargo/bin"
|
fish_add_path "$HOME/.cargo/bin"
|
||||||
# Add the local user bin to path as well
|
# Add the local user bin to path as well
|
||||||
fish_add_path "$HOME/.local/bin"
|
fish_add_path "$HOME/.local/bin"
|
||||||
|
# Add bob's nvim bin to path
|
||||||
|
fish_add_path "$HOME/.local/share/bob/nvim-bin"
|
||||||
|
|
||||||
# --- Tool Initialization ---
|
# --- Tool Initialization ---
|
||||||
# Starship Prompt
|
|
||||||
starship init fish | source
|
|
||||||
|
|
||||||
# Zoxide (replaces cd)
|
# Zoxide (replaces cd)
|
||||||
set -x FZF_DEFAULT_OPTS --tmux
|
|
||||||
zoxide init --cmd cd fish | source
|
zoxide init --cmd cd fish | source
|
||||||
|
|
||||||
# Autin (rip unencrypted .bash_history)
|
# Autin (rip unencrypted .bash_history)
|
||||||
@@ -27,9 +23,32 @@ if test -f "$HOME/.fzf.fish"
|
|||||||
source "$HOME/.fzf.fish"
|
source "$HOME/.fzf.fish"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# --- Appearance ---
|
||||||
|
# While the GitHub says to use `fish theme save`, I think it's either
|
||||||
|
# outdated or slightly incorrect.
|
||||||
|
fish_config theme choose "Catppuccin Mocha"
|
||||||
|
# I also want to either swap some of the Catppuccin colors around,
|
||||||
|
# or break the Catppuccin theme for my shell since it makes the most
|
||||||
|
# sense to be the most personalized.
|
||||||
|
# What I normally do is a lot of cyan and purple though, which isn't
|
||||||
|
# the most appealing.
|
||||||
|
# Perhaps when I get to that I'll customize Starship a little more too...
|
||||||
|
|
||||||
# # Hopefully fixes the length errors in nvim
|
# Starship Prompt
|
||||||
# set -gx XDG_CACHE_HOME "/tmp/.nv"
|
starship init fish | source
|
||||||
|
|
||||||
|
# --- Forcing Tmux Upon Thyself ---
|
||||||
|
# I keep doing all these things with tmux and looking at tpm plugins,
|
||||||
|
# yet for some reason I'm not always using it
|
||||||
|
#
|
||||||
|
# Should only activate in a terminal emulator though, since it starting
|
||||||
|
# with the env of the tty or neovim instead of the wayland session is
|
||||||
|
# really annoying tbh
|
||||||
|
|
||||||
# Should I go ahead and `tmux start-server` in here?
|
if not tty | string match --quiet --regex '^/dev/tty[0-9]+$' || set -q TMUX || set -q NVIM
|
||||||
|
# Making it a varible just in case I wanna change it some day
|
||||||
|
set DEFAULT_SESSION home
|
||||||
|
if status is-interactive && not set -q TMUX
|
||||||
|
tmux attach -t $DEFAULT_SESSION || tmux new-session -s $DEFAULT_SESSION
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|||||||
@@ -1,32 +1,44 @@
|
|||||||
# This file contains fish universal variable definitions.
|
# This file contains fish universal variable definitions.
|
||||||
# VERSION: 3.0
|
# VERSION: 3.0
|
||||||
SETUVAR __fish_initialized:3400
|
SETUVAR --export FZF_DEFAULT_OPTS:\x2d\x2dcolor\x3dbg\x2b\x3a\x23313244\x2cbg\x3a\x231E1E2E\x2cspinner\x3a\x23F5E0DC\x2chl\x3a\x23F38BA8\x20\x2d\x2dcolor\x3dfg\x3a\x23CDD6F4\x2cheader\x3a\x23F38BA8\x2cinfo\x3a\x23CBA6F7\x2cpointer\x3a\x23F5E0DC\x20\x2d\x2dcolor\x3dmarker\x3a\x23B4BEFE\x2cfg\x2b\x3a\x23CDD6F4\x2cprompt\x3a\x23CBA6F7\x2chl\x2b\x3a\x23F38BA8\x20\x2d\x2dcolor\x3dselected\x2dbg\x3a\x2345475A\x20\x2d\x2dcolor\x3dborder\x3a\x236C7086\x2clabel\x3a\x23CDD6F4\x20\x2d\x2dtmux # Catppuccin and tmux
|
||||||
SETUVAR fish_color_autosuggestion:555\x1ebrblack
|
SETUVAR __fish_initialized:3800
|
||||||
SETUVAR fish_color_cancel:\x2dr
|
SETUVAR fish_color_autosuggestion:6c7086
|
||||||
SETUVAR fish_color_command:blue
|
SETUVAR fish_color_cancel:f38ba8
|
||||||
SETUVAR fish_color_comment:red
|
SETUVAR fish_color_command:33fff3
|
||||||
SETUVAR fish_color_cwd:green
|
SETUVAR fish_color_comment:7f849c
|
||||||
|
SETUVAR fish_color_cwd:f9e2af
|
||||||
SETUVAR fish_color_cwd_root:red
|
SETUVAR fish_color_cwd_root:red
|
||||||
SETUVAR fish_color_end:green
|
SETUVAR fish_color_end:fab387
|
||||||
SETUVAR fish_color_error:brred
|
SETUVAR fish_color_error:f38ba8
|
||||||
SETUVAR fish_color_escape:brcyan
|
SETUVAR fish_color_escape:eba0ac
|
||||||
|
SETUVAR fish_color_gray:6c7086
|
||||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||||
SETUVAR fish_color_host:normal
|
SETUVAR fish_color_host:89b4fa
|
||||||
SETUVAR fish_color_host_remote:yellow
|
SETUVAR fish_color_host_remote:a6e3a1
|
||||||
SETUVAR fish_color_normal:normal
|
SETUVAR fish_color_keyword:f38ba8
|
||||||
SETUVAR fish_color_operator:brcyan
|
SETUVAR fish_color_normal:cdd6f4
|
||||||
SETUVAR fish_color_param:cyan
|
SETUVAR fish_color_operator:f5c2e7
|
||||||
SETUVAR fish_color_quote:yellow
|
SETUVAR fish_color_option:a6e3a1
|
||||||
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
|
SETUVAR fish_color_param:f2cdcd
|
||||||
SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack
|
SETUVAR fish_color_quote:a6e3a1
|
||||||
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
SETUVAR fish_color_redirection:f5c2e7
|
||||||
SETUVAR fish_color_status:red
|
SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d313244
|
||||||
SETUVAR fish_color_user:brgreen
|
SETUVAR fish_color_selection:\x2d\x2dbackground\x3d313244
|
||||||
|
SETUVAR fish_color_status:f38ba8
|
||||||
|
SETUVAR fish_color_user:94e2d5
|
||||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||||
SETUVAR fish_key_bindings:fish_default_key_bindings
|
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||||
SETUVAR fish_pager_color_completion:normal
|
SETUVAR fish_pager_color_background:\x1d
|
||||||
SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di
|
SETUVAR fish_pager_color_completion:cdd6f4
|
||||||
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
SETUVAR fish_pager_color_description:6c7086
|
||||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
SETUVAR fish_pager_color_prefix:f5c2e7
|
||||||
SETUVAR fish_pager_color_selected_background:\x2dr
|
SETUVAR fish_pager_color_progress:6c7086
|
||||||
SETUVAR fish_user_paths:/home/foreverpyrite/\x2elocal/bin\x1e/home/foreverpyrite/\x2ecargo/bin\x1e/root/\x2ecargo/bin\x1e/root/\x2efzf/bin\x1e/home/foreverpyrite/\x2efzf/bin
|
SETUVAR fish_pager_color_secondary_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_completion:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_description:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_prefix:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_completion:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_description:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_prefix:\x1d
|
||||||
|
SETUVAR fish_user_paths:/home/foreverpyrite/\x2elocal/share/bob/nvim\x2dbin\x1e/home/foreverpyrite/\x2elocal/bin\x1e/home/foreverpyrite/\x2ecargo/bin\x1e/root/\x2ecargo/bin\x1e/root/\x2efzf/bin\x1e/home/foreverpyrite/\x2efzf/bin
|
||||||
|
|||||||
30
fish/.config/fish/themes/Catppuccin Mocha.theme
Normal file
30
fish/.config/fish/themes/Catppuccin Mocha.theme
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# name: 'Catppuccin Mocha'
|
||||||
|
# url: 'https://github.com/catppuccin/fish'
|
||||||
|
# preferred_background: 1e1e2e
|
||||||
|
|
||||||
|
fish_color_normal cdd6f4
|
||||||
|
fish_color_command 89b4fa
|
||||||
|
fish_color_param f2cdcd
|
||||||
|
fish_color_keyword f38ba8
|
||||||
|
fish_color_quote a6e3a1
|
||||||
|
fish_color_redirection f5c2e7
|
||||||
|
fish_color_end fab387
|
||||||
|
fish_color_comment 7f849c
|
||||||
|
fish_color_error f38ba8
|
||||||
|
fish_color_gray 6c7086
|
||||||
|
fish_color_selection --background=313244
|
||||||
|
fish_color_search_match --background=313244
|
||||||
|
fish_color_option a6e3a1
|
||||||
|
fish_color_operator f5c2e7
|
||||||
|
fish_color_escape eba0ac
|
||||||
|
fish_color_autosuggestion 6c7086
|
||||||
|
fish_color_cancel f38ba8
|
||||||
|
fish_color_cwd f9e2af
|
||||||
|
fish_color_user 94e2d5
|
||||||
|
fish_color_host 89b4fa
|
||||||
|
fish_color_host_remote a6e3a1
|
||||||
|
fish_color_status f38ba8
|
||||||
|
fish_pager_color_progress 6c7086
|
||||||
|
fish_pager_color_prefix f5c2e7
|
||||||
|
fish_pager_color_completion cdd6f4
|
||||||
|
fish_pager_color_description 6c7086
|
||||||
1
fonts/.local/share/fonts/Hack/.uuid
Normal file
1
fonts/.local/share/fonts/Hack/.uuid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
d80e1c2a-e7b0-45b9-8433-c1f999802859
|
||||||
BIN
fonts/.local/share/fonts/Hack/HackNerdFont-Bold.ttf
Normal file
BIN
fonts/.local/share/fonts/Hack/HackNerdFont-Bold.ttf
Normal file
Binary file not shown.
BIN
fonts/.local/share/fonts/Hack/HackNerdFont-BoldItalic.ttf
Normal file
BIN
fonts/.local/share/fonts/Hack/HackNerdFont-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/.local/share/fonts/Hack/HackNerdFont-Italic.ttf
Normal file
BIN
fonts/.local/share/fonts/Hack/HackNerdFont-Italic.ttf
Normal file
Binary file not shown.
BIN
fonts/.local/share/fonts/Hack/HackNerdFont-Regular.ttf
Normal file
BIN
fonts/.local/share/fonts/Hack/HackNerdFont-Regular.ttf
Normal file
Binary file not shown.
BIN
fonts/.local/share/fonts/Hack/HackNerdFontMono-Bold.ttf
Normal file
BIN
fonts/.local/share/fonts/Hack/HackNerdFontMono-Bold.ttf
Normal file
Binary file not shown.
BIN
fonts/.local/share/fonts/Hack/HackNerdFontMono-BoldItalic.ttf
Normal file
BIN
fonts/.local/share/fonts/Hack/HackNerdFontMono-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/.local/share/fonts/Hack/HackNerdFontMono-Italic.ttf
Normal file
BIN
fonts/.local/share/fonts/Hack/HackNerdFontMono-Italic.ttf
Normal file
Binary file not shown.
BIN
fonts/.local/share/fonts/Hack/HackNerdFontMono-Regular.ttf
Normal file
BIN
fonts/.local/share/fonts/Hack/HackNerdFontMono-Regular.ttf
Normal file
Binary file not shown.
BIN
fonts/.local/share/fonts/Hack/HackNerdFontPropo-Bold.ttf
Normal file
BIN
fonts/.local/share/fonts/Hack/HackNerdFontPropo-Bold.ttf
Normal file
Binary file not shown.
BIN
fonts/.local/share/fonts/Hack/HackNerdFontPropo-BoldItalic.ttf
Normal file
BIN
fonts/.local/share/fonts/Hack/HackNerdFontPropo-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/.local/share/fonts/Hack/HackNerdFontPropo-Italic.ttf
Normal file
BIN
fonts/.local/share/fonts/Hack/HackNerdFontPropo-Italic.ttf
Normal file
Binary file not shown.
BIN
fonts/.local/share/fonts/Hack/HackNerdFontPropo-Regular.ttf
Normal file
BIN
fonts/.local/share/fonts/Hack/HackNerdFontPropo-Regular.ttf
Normal file
Binary file not shown.
1
fonts/.local/share/fonts/Nimbus/.uuid
Normal file
1
fonts/.local/share/fonts/Nimbus/.uuid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
a197d76c-13ad-4b17-abb0-dd4d5e05f983
|
||||||
BIN
fonts/.local/share/fonts/Nimbus/NimbusSansDOTNerdFont-Bold.otf
Normal file
BIN
fonts/.local/share/fonts/Nimbus/NimbusSansDOTNerdFont-Bold.otf
Normal file
Binary file not shown.
BIN
fonts/.local/share/fonts/Nimbus/NimbusSansDOTNerdFont-Bold.woff2
Normal file
BIN
fonts/.local/share/fonts/Nimbus/NimbusSansDOTNerdFont-Bold.woff2
Normal file
Binary file not shown.
BIN
fonts/.local/share/fonts/Nimbus/NimbusSansDOTNerdFont-Light.otf
Normal file
BIN
fonts/.local/share/fonts/Nimbus/NimbusSansDOTNerdFont-Light.otf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
21
install.sh
21
install.sh
@@ -27,16 +27,17 @@ PREREQ_PACKAGES=(git stow) # Git to clone my dotfiles repo, stow to symlink my c
|
|||||||
SYSTEM_PACKAGES=(curl tmux btop fish)
|
SYSTEM_PACKAGES=(curl tmux btop fish)
|
||||||
# Okay yes this may seem complete over-the-top oxidization, however:
|
# Okay yes this may seem complete over-the-top oxidization, however:
|
||||||
RUST_PACKAGES=(
|
RUST_PACKAGES=(
|
||||||
eza # Drop in `ls` replacement, more modern formatting, and even has a built in tree command! (The amount of times I've had to install tree...)
|
eza # Drop in `ls` replacement, more modern formatting, and even has a built in tree command! (The amount of times I've had to install tree...)
|
||||||
bat # Drop in `cat` replacement, more modern formatting, uhh "cat with wings" is what they said. I agree.
|
bat # Drop in `cat` replacement, more modern formatting, uhh "cat with wings" is what they said. I agree.
|
||||||
ripgrep # Drop in `grep` replacement, and it's FASTTTTTTTTTTTTTT. Has unironically saved me trying to find a file I misplaced so many times. FASTTTTTTTTTTTTTT.
|
ripgrep # Drop in `grep` replacement, and it's FASTTTTTTTTTTTTTT. Has unironically saved me trying to find a file I misplaced so many times. FASTTTTTTTTTTTTTT.
|
||||||
fd-find # Drop in `find` replacement, and it's also FASTTTTTTTTTTTTTT. Very similar to `ripgrep`, but for file(path)s instead of file contents.
|
fd-find # Drop in `find` replacement, and it's also FASTTTTTTTTTTTTTT. Very similar to `ripgrep`, but for file(path)s instead of file contents.
|
||||||
zoxide # Drop in `cd` replacement, can use `fzf` to...well...fuzzy find, and it also just knows where to go
|
zoxide # Drop in `cd` replacement, can use `fzf` to...well...fuzzy find, and it also just knows where to go
|
||||||
starship # Super customizable cross-shell prompt. Very informative, yet very brief (at least, by default).
|
starship # Super customizable cross-shell prompt. Very informative, yet very brief (at least, by default).
|
||||||
bob-nvim # Probably something I'll drop since installing up-to-date neovim seems like an impossible task. I'll figure out something...
|
bob-nvim # Probably something I'll drop since installing up-to-date neovim seems like an impossible task. I'll figure out something...
|
||||||
atuin # This is kinda like zoxide, but for your shell commands. Pressing the up arrow now shows your entire command history, and you can fuzzy find through them. I imagine it's more secure than .bash_history too.
|
tree-sitter-cli # Dependancy for some neovim stuff.
|
||||||
dua-cli # Disk-usage-analyzer. Plain and simple. For some reason I can't figure out how to find folder sizes (you probably can with `eza`), so this'll do. Useful for my limited storage cloud VPS and stuff.
|
atuin # This is kinda like zoxide, but for your shell commands. Pressing the up arrow now shows your entire command history, and you can fuzzy find through them. I imagine it's more secure than .bash_history too.
|
||||||
cargo-cache # Actually just used for this script so far. It'll clean up all the, likely useless, sizable compiled dependancies used to build all of this.
|
dua-cli # Disk-usage-analyzer. Plain and simple. For some reason I can't figure out how to find folder sizes (you probably can with `eza`), so this'll do. Useful for my limited storage cloud VPS and stuff.
|
||||||
|
cargo-cache # Actually just used for this script so far. It'll clean up all the, likely useless, sizable compiled dependancies used to build all of this.
|
||||||
)
|
)
|
||||||
|
|
||||||
# Global variables for system context
|
# Global variables for system context
|
||||||
|
|||||||
10
kidex/.config/kidex.ron
Normal file
10
kidex/.config/kidex.ron
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Config(
|
||||||
|
ignored: [], // A list of patterns to be ignored in all directories
|
||||||
|
directories: [
|
||||||
|
WatchDir(
|
||||||
|
path: "~", // The root folder to be indexed
|
||||||
|
recurse: true, // Recursively index and watch all subfolders
|
||||||
|
ignored: [], // Ignore patterns specifically for this directory
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
66
moxide/.config/moxide/settings.toml
Normal file
66
moxide/.config/moxide/settings.toml
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
# Leave blank to try to import from Obsidian Daily Notes
|
||||||
|
dailynote = "%Y-%m-%d" # this is akin to YYYY-MM-DD from Obsidian
|
||||||
|
|
||||||
|
# Fuzzy match file headings in completions
|
||||||
|
heading_completions = true
|
||||||
|
|
||||||
|
# Set true if you title your notes by the first heading
|
||||||
|
# Right now, if true this will cause completing a file link in the markdown style
|
||||||
|
# to insert the name of the first heading in the display text area
|
||||||
|
# [](file) -> [first heading of file.md](file)
|
||||||
|
# If false, [](file) -> [](file) (for example)
|
||||||
|
title_headings = true
|
||||||
|
|
||||||
|
# Show diagnostics for unresolved links; note that even if this is turned off,
|
||||||
|
# special semantic tokens will be sent for the unresolved links, allowing you
|
||||||
|
# to visually identify unresolved links
|
||||||
|
unresolved_diagnostics = true
|
||||||
|
|
||||||
|
semantic_tokens = true
|
||||||
|
|
||||||
|
# Resolve tags in code blocks
|
||||||
|
tags_in_codeblocks = false
|
||||||
|
# Resolve references in code blocks
|
||||||
|
references_in_codeblocks = false
|
||||||
|
|
||||||
|
# The folder for new files to be created in; this is relevant for the code action that creates
|
||||||
|
# from an unresolved link. If not specified, it will import from your obsidian config option titled
|
||||||
|
# "Default Location for new notes" -- which is "" by default too.
|
||||||
|
# new_file_folder_path = ""
|
||||||
|
|
||||||
|
|
||||||
|
# The folder for new daily notes: this is applied for the create file for unresolved link code action
|
||||||
|
# as well as the Today, Tomorrow, Yesterday, and Daily... lsp commands
|
||||||
|
#
|
||||||
|
# This is also imported from obsidian if not specified: specifically the option titled "New file location"
|
||||||
|
# daily_notes_folder = ""
|
||||||
|
|
||||||
|
|
||||||
|
# Whether markdown links should include an extension or not
|
||||||
|
# for example [File](file.md) or [File](file)
|
||||||
|
include_md_extension_md_link = false
|
||||||
|
|
||||||
|
# Whether wikilinks should include an extension or not (needed for Markor compatibility)
|
||||||
|
# for example [[File]] or [[File.md]]
|
||||||
|
include_md_extension_wikilink = false
|
||||||
|
|
||||||
|
# Enable hover; this is relevant for VSCode and Zed where hover could be triggered on mouse hover
|
||||||
|
# and could be annoying
|
||||||
|
hover = true
|
||||||
|
|
||||||
|
# Handle case in fuzzy matches: Ignore | Smart | Respect
|
||||||
|
case_matching = "Smart"
|
||||||
|
|
||||||
|
# Enable inlay hints
|
||||||
|
inlay_hints = true
|
||||||
|
# Enable transclusion, in the form of inlay hints, for embedded block links: ![[link]]
|
||||||
|
# Inlay hints must be enabled
|
||||||
|
block_transclusion = true
|
||||||
|
# Full or Partial, for Partial, block_transclusion_length = { partial = 10 }
|
||||||
|
# block_transclusion must be enabled for this to take effect
|
||||||
|
block_transclusion_length = "Full"
|
||||||
|
|
||||||
|
# Link file names only
|
||||||
|
# Enables autocompleting by heading but inserting link to filename (instead of filename + heading)
|
||||||
|
# Useful for unique notes / Zettelkasten users
|
||||||
|
link_filenames_only = false
|
||||||
655
niri/.config/niri/config.kdl
Normal file
655
niri/.config/niri/config.kdl
Normal file
@@ -0,0 +1,655 @@
|
|||||||
|
// 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://yalter.github.io/niri/Configuration:-Introduction
|
||||||
|
|
||||||
|
// Input device configuration.
|
||||||
|
// Find the full list of options on the wiki:
|
||||||
|
// https://yalter.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.
|
||||||
|
|
||||||
|
// I find it's more ergonomic to use caps as the Mod key
|
||||||
|
// It also feels nice to finally give it a use <3
|
||||||
|
options "caps:super"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 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://yalter.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://yalter.github.io/niri/Configuration:-Layout
|
||||||
|
layout {
|
||||||
|
// Set gaps around windows in logical pixels.
|
||||||
|
gaps 4
|
||||||
|
|
||||||
|
// 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+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 2
|
||||||
|
|
||||||
|
// 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 "#5c13b0"
|
||||||
|
|
||||||
|
// 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 "ironbar"
|
||||||
|
// spawn-at-startup "swaync"
|
||||||
|
|
||||||
|
// Trying this noctalia thing and we will go from there
|
||||||
|
spawn-at-startup "qs" "-c" "noctalia-shell"
|
||||||
|
|
||||||
|
// 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://yalter.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://yalter.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.
|
||||||
|
window-rule {
|
||||||
|
geometry-corner-radius 20
|
||||||
|
clip-to-geometry true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Suggested for Noctalia
|
||||||
|
layer-rule {
|
||||||
|
match namespace="^quickshell-overview$"
|
||||||
|
place-within-backdrop true
|
||||||
|
}
|
||||||
|
|
||||||
|
debug {
|
||||||
|
honor-xdg-activation-with-invalid-serial
|
||||||
|
}
|
||||||
|
|
||||||
|
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; }
|
||||||
|
|
||||||
|
// Core Noctalia binds
|
||||||
|
Mod+D { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "launcher" "toggle"; }
|
||||||
|
Mod+S { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "controlCenter" "toggle"; }
|
||||||
|
Mod+Comma { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "settings" "toggle"; }
|
||||||
|
|
||||||
|
// Audio controls
|
||||||
|
XF86AudioRaiseVolume { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "volume" "increase"; }
|
||||||
|
XF86AudioLowerVolume { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "volume" "decrease"; }
|
||||||
|
XF86AudioMute { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "volume" "muteOutput"; }
|
||||||
|
|
||||||
|
// Brightness controls
|
||||||
|
XF86MonBrightnessUp { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "brightness" "increase"; }
|
||||||
|
XF86MonBrightnessDown { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "brightness" "decrease"; }
|
||||||
|
|
||||||
|
// Utility shortcuts
|
||||||
|
Mod+V { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "launcher" "clipboard"; }
|
||||||
|
// Mod+C { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "launcher" "calculator"; }
|
||||||
|
Mod+Alt+L { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "lockScreen" "toggle"; }
|
||||||
|
|
||||||
|
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||||
|
Mod+T hotkey-overlay-title="Open a Terminal: alacritty" { spawn "alacritty"; }
|
||||||
|
Alt+Space hotkey-overlay-title="Run an Application: anyrun" { spawn "anyrun"; }
|
||||||
|
// 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.
|
||||||
|
// XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; }
|
||||||
|
// 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"; }
|
||||||
|
// On the topic of this, if you ever get a media (player) manager, the numpad keys
|
||||||
|
// are KP_Divide, KP_Multiply, and KP_Subtract you weirdo
|
||||||
|
|
||||||
|
// 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-or-workspace-down; }
|
||||||
|
Mod+K { focus-window-or-workspace-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-or-to-workspace-down; }
|
||||||
|
Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
|
||||||
|
Mod+Ctrl+L { move-column-right; }
|
||||||
|
|
||||||
|
// Alternative commands that move across workspaces when reaching
|
||||||
|
// the first or last window in a column.
|
||||||
|
//
|
||||||
|
// Yeah they aren't here cause I'm using them cause they are AWESOME
|
||||||
|
|
||||||
|
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; }
|
||||||
|
|
||||||
|
// These have just messed with me lowkey
|
||||||
|
// 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; }
|
||||||
|
|
||||||
|
Mod+R { switch-preset-column-width; }
|
||||||
|
// Cycling through the presets in reverse order is also possible.
|
||||||
|
// Mod+R { switch-preset-column-width-back; }
|
||||||
|
Mod+Shift+R { switch-preset-window-height; }
|
||||||
|
Mod+Ctrl+R { reset-window-height; }
|
||||||
|
Mod+F { maximize-column; }
|
||||||
|
Mod+Shift+F { fullscreen-window; }
|
||||||
|
|
||||||
|
// 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.
|
||||||
|
// These keybinds don't feel ergonomic in the slightest
|
||||||
|
Mod+Alt+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; }
|
||||||
|
}
|
||||||
16
noctalia/.config/noctalia/colors.json
Normal file
16
noctalia/.config/noctalia/colors.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"mError": "#f38ba8",
|
||||||
|
"mOnError": "#11111b",
|
||||||
|
"mOnPrimary": "#11111b",
|
||||||
|
"mOnSecondary": "#11111b",
|
||||||
|
"mOnSurface": "#cdd6f4",
|
||||||
|
"mOnSurfaceVariant": "#a3b4eb",
|
||||||
|
"mOnTertiary": "#11111b",
|
||||||
|
"mOutline": "#4c4f69",
|
||||||
|
"mPrimary": "#cba6f7",
|
||||||
|
"mSecondary": "#fab387",
|
||||||
|
"mShadow": "#11111b",
|
||||||
|
"mSurface": "#1e1e2e",
|
||||||
|
"mSurfaceVariant": "#313244",
|
||||||
|
"mTertiary": "#94e2d5"
|
||||||
|
}
|
||||||
229
noctalia/.config/noctalia/settings.json
Normal file
229
noctalia/.config/noctalia/settings.json
Normal file
@@ -0,0 +1,229 @@
|
|||||||
|
{
|
||||||
|
"appLauncher": {
|
||||||
|
"backgroundOpacity": 1,
|
||||||
|
"enableClipboardHistory": true,
|
||||||
|
"pinnedExecs": [
|
||||||
|
],
|
||||||
|
"position": "center",
|
||||||
|
"sortByMostUsed": true,
|
||||||
|
"useApp2Unit": false
|
||||||
|
},
|
||||||
|
"audio": {
|
||||||
|
"cavaFrameRate": 60,
|
||||||
|
"mprisBlacklist": [
|
||||||
|
],
|
||||||
|
"preferredPlayer": "",
|
||||||
|
"visualizerType": "linear",
|
||||||
|
"volumeOverdrive": false,
|
||||||
|
"volumeStep": 5
|
||||||
|
},
|
||||||
|
"bar": {
|
||||||
|
"backgroundOpacity": 1,
|
||||||
|
"density": "default",
|
||||||
|
"floating": false,
|
||||||
|
"marginHorizontal": 1.25,
|
||||||
|
"marginVertical": 0.25,
|
||||||
|
"monitors": [
|
||||||
|
],
|
||||||
|
"position": "top",
|
||||||
|
"showCapsule": true,
|
||||||
|
"widgets": {
|
||||||
|
"center": [
|
||||||
|
{
|
||||||
|
"hideUnoccupied": false,
|
||||||
|
"id": "Workspace",
|
||||||
|
"labelMode": "index"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"left": [
|
||||||
|
{
|
||||||
|
"id": "SystemMonitor",
|
||||||
|
"showCpuTemp": true,
|
||||||
|
"showCpuUsage": true,
|
||||||
|
"showDiskUsage": false,
|
||||||
|
"showMemoryAsPercent": false,
|
||||||
|
"showMemoryUsage": true,
|
||||||
|
"showNetworkStats": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"autoHide": true,
|
||||||
|
"id": "ActiveWindow",
|
||||||
|
"scrollingMode": "hover",
|
||||||
|
"showIcon": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"autoHide": true,
|
||||||
|
"id": "MediaMini",
|
||||||
|
"scrollingMode": "hover",
|
||||||
|
"showAlbumArt": false,
|
||||||
|
"showVisualizer": false,
|
||||||
|
"visualizerType": "linear"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"right": [
|
||||||
|
{
|
||||||
|
"id": "ScreenRecorder"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "Tray"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hideWhenZero": true,
|
||||||
|
"id": "NotificationHistory",
|
||||||
|
"showUnreadBadge": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "WiFi"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "Bluetooth"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"displayMode": "onhover",
|
||||||
|
"id": "Battery",
|
||||||
|
"warningThreshold": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"displayMode": "onhover",
|
||||||
|
"id": "Volume"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"displayMode": "onhover",
|
||||||
|
"id": "Brightness"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"formatHorizontal": "HH:mm ddd, MMM dd",
|
||||||
|
"formatVertical": "HH mm - dd MM",
|
||||||
|
"id": "Clock",
|
||||||
|
"useMonospacedFont": true,
|
||||||
|
"usePrimaryColor": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"customIconPath": "",
|
||||||
|
"icon": "noctalia",
|
||||||
|
"id": "ControlCenter",
|
||||||
|
"useDistroLogo": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"brightness": {
|
||||||
|
"brightnessStep": 5
|
||||||
|
},
|
||||||
|
"colorSchemes": {
|
||||||
|
"darkMode": true,
|
||||||
|
"matugenSchemeType": "scheme-rainbow",
|
||||||
|
"predefinedScheme": "Catppuccin",
|
||||||
|
"useWallpaperColors": false
|
||||||
|
},
|
||||||
|
"dock": {
|
||||||
|
"autoHide": false,
|
||||||
|
"backgroundOpacity": 1,
|
||||||
|
"exclusive": false,
|
||||||
|
"floatingRatio": 1,
|
||||||
|
"monitors": [
|
||||||
|
],
|
||||||
|
"pinnedApps": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"animationDisabled": false,
|
||||||
|
"animationSpeed": 1.1500000000000001,
|
||||||
|
"avatarImage": "/home/foreverpyrite/Pictures/Pysprite/ForeverPyrite Head.png",
|
||||||
|
"dimDesktop": true,
|
||||||
|
"forceBlackScreenCorners": false,
|
||||||
|
"radiusRatio": 1,
|
||||||
|
"screenRadiusRatio": 1,
|
||||||
|
"showScreenCorners": false
|
||||||
|
},
|
||||||
|
"hooks": {
|
||||||
|
"darkModeChange": "",
|
||||||
|
"enabled": false,
|
||||||
|
"wallpaperChange": ""
|
||||||
|
},
|
||||||
|
"location": {
|
||||||
|
"name": "New York",
|
||||||
|
"showWeekNumberInCalendar": false,
|
||||||
|
"use12hourFormat": false,
|
||||||
|
"useFahrenheit": true
|
||||||
|
},
|
||||||
|
"matugen": {
|
||||||
|
"enableUserTemplates": false,
|
||||||
|
"foot": false,
|
||||||
|
"fuzzel": false,
|
||||||
|
"ghostty": false,
|
||||||
|
"gtk3": false,
|
||||||
|
"gtk4": false,
|
||||||
|
"kitty": false,
|
||||||
|
"pywalfox": false,
|
||||||
|
"qt5": false,
|
||||||
|
"qt6": false,
|
||||||
|
"vesktop": false
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
"wifiEnabled": true
|
||||||
|
},
|
||||||
|
"nightLight": {
|
||||||
|
"autoSchedule": true,
|
||||||
|
"dayTemp": "6500",
|
||||||
|
"enabled": true,
|
||||||
|
"forced": true,
|
||||||
|
"manualSunrise": "06:30",
|
||||||
|
"manualSunset": "18:30",
|
||||||
|
"nightTemp": "4000"
|
||||||
|
},
|
||||||
|
"notifications": {
|
||||||
|
"alwaysOnTop": false,
|
||||||
|
"criticalUrgencyDuration": 15,
|
||||||
|
"doNotDisturb": false,
|
||||||
|
"lastSeenTs": 1759199713000,
|
||||||
|
"location": "top_right",
|
||||||
|
"lowUrgencyDuration": 3,
|
||||||
|
"monitors": [
|
||||||
|
],
|
||||||
|
"normalUrgencyDuration": 8,
|
||||||
|
"respectExpireTimeout": false
|
||||||
|
},
|
||||||
|
"osd": {
|
||||||
|
"autoHideMs": 2000,
|
||||||
|
"enabled": true,
|
||||||
|
"location": "top_right",
|
||||||
|
"monitors": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"screenRecorder": {
|
||||||
|
"audioCodec": "opus",
|
||||||
|
"audioSource": "default_output",
|
||||||
|
"colorRange": "limited",
|
||||||
|
"directory": "/home/foreverpyrite/Videos",
|
||||||
|
"frameRate": 60,
|
||||||
|
"quality": "very_high",
|
||||||
|
"showCursor": true,
|
||||||
|
"videoCodec": "h264",
|
||||||
|
"videoSource": "portal"
|
||||||
|
},
|
||||||
|
"settingsVersion": 12,
|
||||||
|
"ui": {
|
||||||
|
"fontBillboard": "Inter",
|
||||||
|
"fontDefault": "NimbusSansDOT Nerd Font",
|
||||||
|
"fontFixed": "Hack Nerd Font Mono",
|
||||||
|
"idleInhibitorEnabled": false,
|
||||||
|
"monitorsScaling": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"wallpaper": {
|
||||||
|
"directory": "/home/foreverpyrite/Pictures/Wallpapers",
|
||||||
|
"enableMultiMonitorDirectories": false,
|
||||||
|
"enabled": false,
|
||||||
|
"fillColor": "#000000",
|
||||||
|
"fillMode": "crop",
|
||||||
|
"monitors": [
|
||||||
|
],
|
||||||
|
"randomEnabled": false,
|
||||||
|
"randomIntervalSec": 300,
|
||||||
|
"setWallpaperOnAllMonitors": true,
|
||||||
|
"transitionDuration": 1500,
|
||||||
|
"transitionEdgeSmoothness": 0.05,
|
||||||
|
"transitionType": "random"
|
||||||
|
}
|
||||||
|
}
|
||||||
Submodule nvim/.config/nvim deleted from 803bc181d7
8
nvim/.config/nvim/.gitignore
vendored
Normal file
8
nvim/.config/nvim/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
tt.*
|
||||||
|
.tests
|
||||||
|
doc/tags
|
||||||
|
debug
|
||||||
|
.repro
|
||||||
|
foo.*
|
||||||
|
*.log
|
||||||
|
data
|
||||||
201
nvim/.config/nvim/LICENSE
Normal file
201
nvim/.config/nvim/LICENSE
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
4
nvim/.config/nvim/README.md
Normal file
4
nvim/.config/nvim/README.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# 💤 LazyVim
|
||||||
|
|
||||||
|
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
|
||||||
|
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
|
||||||
43
nvim/.config/nvim/init.lua
Normal file
43
nvim/.config/nvim/init.lua
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||||
|
require("config.lazy")
|
||||||
|
|
||||||
|
-- Unfortunately, the file paths are too long and break things
|
||||||
|
vim.loader.enable(false)
|
||||||
|
|
||||||
|
-- Clipboard (hopefully, right now my clipboard provider is tmux ig so...)
|
||||||
|
vim.o.clipboard = "unnamedplus"
|
||||||
|
vim.api.nvim_set_keymap("", "<D-v>", "+p<CR>", { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap("!", "<D-v>", "<C-R>+", { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap("t", "<D-v>", "<C-R>+", { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap("v", "<D-v>", "<C-R>+", { noremap = true, silent = true })
|
||||||
|
|
||||||
|
-- Is there a way I can set these in neovide config?
|
||||||
|
if vim.g.neovide then
|
||||||
|
-- Neovide copy & pasting
|
||||||
|
vim.keymap.set("n", "<D-s>", ":w<CR>") -- Save
|
||||||
|
vim.keymap.set("v", "<D-c>", '"+y') -- Copy
|
||||||
|
vim.keymap.set("n", "<D-v>", '"+P') -- Paste normal mode
|
||||||
|
vim.keymap.set("v", "<D-v>", '"+P') -- Paste visual mode
|
||||||
|
vim.keymap.set("c", "<D-v>", "<C-R>+") -- Paste command mode
|
||||||
|
vim.keymap.set("i", "<D-v>", '<ESC>l"+Pli') -- Paste insert mode
|
||||||
|
-- Neovide Scaling support
|
||||||
|
vim.g.neovide_scale_factor = 1.0
|
||||||
|
local set_scale_factor = function(value)
|
||||||
|
vim.g.nevoide_scale_factor = value
|
||||||
|
end
|
||||||
|
local change_scale_factor = function(delta)
|
||||||
|
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * delta
|
||||||
|
end
|
||||||
|
vim.keymap.set("n", "<C-=>", function()
|
||||||
|
change_scale_factor(1.25)
|
||||||
|
end)
|
||||||
|
vim.keymap.set("n", "<C-->", function()
|
||||||
|
change_scale_factor(1 / 1.25)
|
||||||
|
end)
|
||||||
|
vim.keymap.set("n", "<C-0>", function()
|
||||||
|
set_scale_factor(1.0)
|
||||||
|
end)
|
||||||
|
-- General Neovide settings
|
||||||
|
vim.g.neovide_detach_on_quit = "always_detach"
|
||||||
|
vim.g.neovide_fullscreen = true
|
||||||
|
end
|
||||||
40
nvim/.config/nvim/lazy-lock.json
Normal file
40
nvim/.config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"LazyVim": { "branch": "main", "commit": "6e3a06306d72a7f7a401c007f56706023a6c00ea" },
|
||||||
|
"blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" },
|
||||||
|
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||||
|
"catppuccin": { "branch": "main", "commit": "f19cab18ec4dc86d415512c7a572863b2adbcc18" },
|
||||||
|
"conform.nvim": { "branch": "master", "commit": "b4aab989db276993ea5dcb78872be494ce546521" },
|
||||||
|
"crates.nvim": { "branch": "main", "commit": "ac9fa498a9edb96dc3056724ff69d5f40b898453" },
|
||||||
|
"flash.nvim": { "branch": "main", "commit": "b68bda044d68e4026c4e1ec6df3c5afd7eb8e341" },
|
||||||
|
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "f780609807eca1f783a36a8a31c30a48fbe150c5" },
|
||||||
|
"grug-far.nvim": { "branch": "main", "commit": "50d9ee2b5a19634670441948e7e4afaa042f1059" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||||
|
"lazydev.nvim": { "branch": "main", "commit": "258d2a5ef4a3e3d6d9ba9da72c9725c53e9afcbd" },
|
||||||
|
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "a1067cf84b4ff81b66d2bf4d01f4cbdb5de40bd0" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" },
|
||||||
|
"mini.ai": { "branch": "main", "commit": "dcd346a3eda9121e917950680e5eb59f59f78aae" },
|
||||||
|
"mini.icons": { "branch": "main", "commit": "f9a177c11daa7829389b7b6eaaec8b8a5c47052d" },
|
||||||
|
"mini.pairs": { "branch": "main", "commit": "3738ea30ff33e0cbf2983dc67319a5468d25b0a9" },
|
||||||
|
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
|
||||||
|
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||||
|
"nvim-aider": { "branch": "main", "commit": "aa5df1ac89f4417eae3567dbfed82962bfa580c0" },
|
||||||
|
"nvim-lint": { "branch": "master", "commit": "335a6044be16d7701001059cba9baa36fbeef422" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "b3cce1419ca67871ae782b3e529652f8a016f0de" },
|
||||||
|
"nvim-treesitter": { "branch": "main", "commit": "5a70b1eb8cbdf6c7f0a59dfb7356ad198421b620" },
|
||||||
|
"nvim-treesitter-textobjects": { "branch": "main", "commit": "1b2d85d3de6114c4bcea89ffb2cd1ce9e3a19931" },
|
||||||
|
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
|
||||||
|
"obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" },
|
||||||
|
"persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||||
|
"rustaceanvim": { "branch": "master", "commit": "8947b1f941f63cb3d618ebe04e07278bf00714df" },
|
||||||
|
"snacks.nvim": { "branch": "main", "commit": "68da653d206069007f71d4373049193248bf913b" },
|
||||||
|
"suda.vim": { "branch": "master", "commit": "9adda7d195222d4e2854efb2a88005a120296c47" },
|
||||||
|
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
|
||||||
|
"tokyonight.nvim": { "branch": "main", "commit": "14fd5ff7f84027064724ec3157fe903199e77ded" },
|
||||||
|
"trouble.nvim": { "branch": "main", "commit": "f176232e7759c4f8abd923c21e3e5a5c76cd6837" },
|
||||||
|
"ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" },
|
||||||
|
"venv-selector.nvim": { "branch": "main", "commit": "2b49d1f8b8fcf5cfbd0913136f48f118225cca5d" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "904308e6885bbb7b60714c80ab3daf0c071c1492" }
|
||||||
|
}
|
||||||
14
nvim/.config/nvim/lazyvim.json
Normal file
14
nvim/.config/nvim/lazyvim.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"extras": [
|
||||||
|
"lazyvim.plugins.extras.lang.python",
|
||||||
|
"lazyvim.plugins.extras.lang.rust",
|
||||||
|
"lazyvim.plugins.extras.lang.tailwind",
|
||||||
|
"lazyvim.plugins.extras.lang.toml",
|
||||||
|
"lazyvim.plugins.extras.util.mini-hipatterns"
|
||||||
|
],
|
||||||
|
"install_version": 8,
|
||||||
|
"news": {
|
||||||
|
"NEWS.md": "11866"
|
||||||
|
},
|
||||||
|
"version": 8
|
||||||
|
}
|
||||||
8
nvim/.config/nvim/lua/config/autocmds.lua
Normal file
8
nvim/.config/nvim/lua/config/autocmds.lua
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
-- Autocmds are automatically loaded on the VeryLazy event
|
||||||
|
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||||
|
--
|
||||||
|
-- Add any additional autocmds here
|
||||||
|
-- with `vim.api.nvim_create_autocmd`
|
||||||
|
--
|
||||||
|
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
|
||||||
|
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
|
||||||
3
nvim/.config/nvim/lua/config/keymaps.lua
Normal file
3
nvim/.config/nvim/lua/config/keymaps.lua
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
-- Keymaps are automatically loaded on the VeryLazy event
|
||||||
|
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||||
|
-- Add any additional keymaps here
|
||||||
53
nvim/.config/nvim/lua/config/lazy.lua
Normal file
53
nvim/.config/nvim/lua/config/lazy.lua
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
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({
|
||||||
|
spec = {
|
||||||
|
-- add LazyVim and import its plugins
|
||||||
|
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||||
|
-- import/override with your plugins
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
defaults = {
|
||||||
|
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||||
|
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||||
|
lazy = false,
|
||||||
|
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||||
|
-- have outdated releases, which may break your Neovim install.
|
||||||
|
version = false, -- always use the latest git commit
|
||||||
|
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||||
|
},
|
||||||
|
install = { colorscheme = { "catppuccin-mocha" } },
|
||||||
|
checker = {
|
||||||
|
enabled = true, -- check for plugin updates periodically
|
||||||
|
notify = false, -- notify on update
|
||||||
|
}, -- automatically check for plugin updates
|
||||||
|
performance = {
|
||||||
|
rtp = {
|
||||||
|
-- disable some rtp plugins
|
||||||
|
disabled_plugins = {
|
||||||
|
"gzip",
|
||||||
|
-- "matchit",
|
||||||
|
-- "matchparen",
|
||||||
|
-- "netrwPlugin",
|
||||||
|
"tarPlugin",
|
||||||
|
"tohtml",
|
||||||
|
"tutor",
|
||||||
|
"zipPlugin",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
8
nvim/.config/nvim/lua/config/options.lua
Normal file
8
nvim/.config/nvim/lua/config/options.lua
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
-- Options are automatically loaded before lazy.nvim startup
|
||||||
|
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||||
|
-- Add any additional options here
|
||||||
|
|
||||||
|
-- LSP Server to use for Python.
|
||||||
|
vim.g.lazyvim_python_lsp = "basedpyright"
|
||||||
|
-- Set to "ruff_lsp" to use the old LSP implementation version.
|
||||||
|
vim.g.lazyvim_python_ruff = "ruff"
|
||||||
41
nvim/.config/nvim/lua/plugins/aider.lua
Normal file
41
nvim/.config/nvim/lua/plugins/aider.lua
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
-- This is some kind of AI integrration that I figured I'd play with, since the idea of any kind of
|
||||||
|
-- agentic AI within a terminal in an interface that isn't like Codex sounds interesting
|
||||||
|
-- and obviously I'm a cheater
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"GeorgesAlkhouri/nvim-aider",
|
||||||
|
cmd = "Aider",
|
||||||
|
-- Example key mappings for common actions:
|
||||||
|
keys = {
|
||||||
|
{ "<leader>a/", "<cmd>Aider toggle<cr>", desc = "Toggle Aider" },
|
||||||
|
{ "<leader>as", "<cmd>Aider send<cr>", desc = "Send to Aider", mode = { "n", "v" } },
|
||||||
|
{ "<leader>ac", "<cmd>Aider command<cr>", desc = "Aider Commands" },
|
||||||
|
{ "<leader>ab", "<cmd>Aider buffer<cr>", desc = "Send Buffer" },
|
||||||
|
{ "<leader>a+", "<cmd>Aider add<cr>", desc = "Add File" },
|
||||||
|
{ "<leader>a-", "<cmd>Aider drop<cr>", desc = "Drop File" },
|
||||||
|
{ "<leader>ar", "<cmd>Aider add readonly<cr>", desc = "Add Read-Only" },
|
||||||
|
{ "<leader>aR", "<cmd>Aider reset<cr>", desc = "Reset Session" },
|
||||||
|
-- Example nvim-tree.lua integration if needed
|
||||||
|
{ "<leader>a+", "<cmd>AiderTreeAddFile<cr>", desc = "Add File from Tree to Aider", ft = "NvimTree" },
|
||||||
|
{ "<leader>a-", "<cmd>AiderTreeDropFile<cr>", desc = "Drop File from Tree from Aider", ft = "NvimTree" },
|
||||||
|
},
|
||||||
|
dependencies = {
|
||||||
|
"folke/snacks.nvim",
|
||||||
|
--- The below dependencies are optional
|
||||||
|
"catppuccin/nvim",
|
||||||
|
-- "nvim-tree/nvim-tree.lua", --- Neo-tree integration {
|
||||||
|
-- "nvim-neo-tree/neo-tree.nvim",
|
||||||
|
-- opts = function(_, opts)
|
||||||
|
-- -- Example mapping configuration (already set by default)
|
||||||
|
-- -- opts.window = {
|
||||||
|
-- -- mappings = {
|
||||||
|
-- -- ["+"] = { "nvim_aider_add", desc = "add to aider" },
|
||||||
|
-- -- ["-"] = { "nvim_aider_drop", desc = "drop from aider" }
|
||||||
|
-- -- ["="] = { "nvim_aider_add_read_only", desc = "add read-only to aider" }
|
||||||
|
-- -- }
|
||||||
|
-- -- }
|
||||||
|
-- require("nvim_aider.neo_tree").setup(opts)
|
||||||
|
-- end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
61
nvim/.config/nvim/lua/plugins/catppuccin.lua
Normal file
61
nvim/.config/nvim/lua/plugins/catppuccin.lua
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"catppuccin/nvim",
|
||||||
|
lazy = false,
|
||||||
|
name = "catppuccin",
|
||||||
|
auto_integrations = true,
|
||||||
|
opts = {
|
||||||
|
integrations = {
|
||||||
|
aerial = true,
|
||||||
|
alpha = true,
|
||||||
|
cmp = true,
|
||||||
|
dashboard = true,
|
||||||
|
flash = true,
|
||||||
|
fzf = true,
|
||||||
|
grug_far = true,
|
||||||
|
gitsigns = true,
|
||||||
|
headlines = true,
|
||||||
|
illuminate = true,
|
||||||
|
indent_blankline = { enabled = true },
|
||||||
|
leap = true,
|
||||||
|
lsp_trouble = true,
|
||||||
|
mason = true,
|
||||||
|
markdown = true,
|
||||||
|
mini = true,
|
||||||
|
native_lsp = {
|
||||||
|
enabled = true,
|
||||||
|
underlines = {
|
||||||
|
errors = { "undercurl" },
|
||||||
|
hints = { "undercurl" },
|
||||||
|
warnings = { "undercurl" },
|
||||||
|
information = { "undercurl" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
navic = { enabled = true, custom_bg = "lualine" },
|
||||||
|
neotest = true,
|
||||||
|
neotree = true,
|
||||||
|
noice = true,
|
||||||
|
notify = true,
|
||||||
|
semantic_tokens = true,
|
||||||
|
snacks = true,
|
||||||
|
term_colors = true,
|
||||||
|
telescope = true,
|
||||||
|
treesitter = true,
|
||||||
|
treesitter_context = true,
|
||||||
|
which_key = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- Thowing and error, and idk what it does so it's getting thrown out
|
||||||
|
-- specs = {
|
||||||
|
-- {
|
||||||
|
-- "akinsho/bufferline.nvim",
|
||||||
|
-- optional = true,
|
||||||
|
-- opts = function(_, opts)
|
||||||
|
-- if (vim.g.colors_name or ""):find("catppuccin") then
|
||||||
|
-- opts.highlights = require("catppuccin.groups.integrations.bufferline").get()
|
||||||
|
-- end
|
||||||
|
-- end,
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
},
|
||||||
|
}
|
||||||
189
nvim/.config/nvim/lua/plugins/example.lua
Normal file
189
nvim/.config/nvim/lua/plugins/example.lua
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
-- We are going to ignore ALL of this files history.
|
||||||
|
-- Bro did NOT read line 1, or 2, or 3.
|
||||||
|
-- This can stay an example of both plugin conf and my stupidity
|
||||||
|
|
||||||
|
-- since this is just an example spec, don't actually load anything here and return an empty spec
|
||||||
|
-- stylua: ignore
|
||||||
|
if true then return {} end
|
||||||
|
|
||||||
|
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
|
||||||
|
--
|
||||||
|
-- In your plugin files, you can:
|
||||||
|
-- * add extra plugins
|
||||||
|
-- * disable/enabled LazyVim plugins
|
||||||
|
-- * override the configuration of LazyVim plugins
|
||||||
|
return {
|
||||||
|
-- change trouble config
|
||||||
|
{
|
||||||
|
"folke/trouble.nvim",
|
||||||
|
-- opts will be merged with the parent spec
|
||||||
|
opts = { use_diagnostic_signs = true },
|
||||||
|
},
|
||||||
|
|
||||||
|
-- disable trouble
|
||||||
|
{ "folke/trouble.nvim", enabled = false },
|
||||||
|
|
||||||
|
-- override nvim-cmp and add cmp-emoji
|
||||||
|
{
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
dependencies = { "hrsh7th/cmp-emoji" },
|
||||||
|
---@param opts cmp.ConfigSchema
|
||||||
|
opts = function(_, opts)
|
||||||
|
table.insert(opts.sources, { name = "emoji" })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- change some telescope options and a keymap to browse plugin files
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
keys = {
|
||||||
|
-- add a keymap to browse plugin files
|
||||||
|
-- stylua: ignore
|
||||||
|
{
|
||||||
|
"<leader>fp",
|
||||||
|
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
|
||||||
|
desc = "Find Plugin File",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- change some options
|
||||||
|
opts = {
|
||||||
|
defaults = {
|
||||||
|
layout_strategy = "horizontal",
|
||||||
|
layout_config = { prompt_position = "top" },
|
||||||
|
sorting_strategy = "ascending",
|
||||||
|
winblend = 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- add pyright to lspconfig
|
||||||
|
{
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
---@class PluginLspOpts
|
||||||
|
opts = {
|
||||||
|
---@type lspconfig.options
|
||||||
|
servers = {
|
||||||
|
-- pyright will be automatically installed with mason and loaded with lspconfig
|
||||||
|
pyright = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- add tsserver and setup with typescript.nvim instead of lspconfig
|
||||||
|
{
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
dependencies = {
|
||||||
|
"jose-elias-alvarez/typescript.nvim",
|
||||||
|
init = function()
|
||||||
|
require("lazyvim.util").lsp.on_attach(function(_, buffer)
|
||||||
|
-- stylua: ignore
|
||||||
|
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
|
||||||
|
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
---@class PluginLspOpts
|
||||||
|
opts = {
|
||||||
|
---@type lspconfig.options
|
||||||
|
servers = {
|
||||||
|
-- tsserver will be automatically installed with mason and loaded with lspconfig
|
||||||
|
tsserver = {},
|
||||||
|
},
|
||||||
|
-- you can do any additional lsp server setup here
|
||||||
|
-- return true if you don't want this server to be setup with lspconfig
|
||||||
|
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
|
||||||
|
setup = {
|
||||||
|
-- example to setup with typescript.nvim
|
||||||
|
tsserver = function(_, opts)
|
||||||
|
require("typescript").setup({ server = opts })
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
-- Specify * to use this function as a fallback for any server
|
||||||
|
-- ["*"] = function(server, opts) end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
|
||||||
|
-- treesitter, mason and typescript.nvim. So instead of the above, you can use:
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
||||||
|
|
||||||
|
-- add more treesitter parsers
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
opts = {
|
||||||
|
ensure_installed = {
|
||||||
|
"bash",
|
||||||
|
"html",
|
||||||
|
"javascript",
|
||||||
|
"json",
|
||||||
|
"lua",
|
||||||
|
"markdown",
|
||||||
|
"markdown_inline",
|
||||||
|
"python",
|
||||||
|
"query",
|
||||||
|
"regex",
|
||||||
|
"tsx",
|
||||||
|
"typescript",
|
||||||
|
"vim",
|
||||||
|
"yaml",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
|
||||||
|
-- would overwrite `ensure_installed` with the new value.
|
||||||
|
-- If you'd rather extend the default config, use the code below instead:
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
opts = function(_, opts)
|
||||||
|
-- add tsx and treesitter
|
||||||
|
vim.list_extend(opts.ensure_installed, {
|
||||||
|
"tsx",
|
||||||
|
"typescript",
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
-- the opts function can also be used to change the default opts:
|
||||||
|
{
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = function(_, opts)
|
||||||
|
table.insert(opts.sections.lualine_x, {
|
||||||
|
function()
|
||||||
|
return "😄"
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- or you can return new options to override all the defaults
|
||||||
|
{
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = function()
|
||||||
|
return {
|
||||||
|
--[[add your custom lualine config here]]
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- use mini.starter instead of alpha
|
||||||
|
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
|
||||||
|
|
||||||
|
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.json" },
|
||||||
|
|
||||||
|
-- add any tools you want to have installed below
|
||||||
|
{
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
opts = {
|
||||||
|
ensure_installed = {
|
||||||
|
"stylua",
|
||||||
|
"shellcheck",
|
||||||
|
"shfmt",
|
||||||
|
"flake8",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
16
nvim/.config/nvim/lua/plugins/lsp.lua
Normal file
16
nvim/.config/nvim/lua/plugins/lsp.lua
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
return {
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
opts = {
|
||||||
|
servers = {
|
||||||
|
basedpyright = {
|
||||||
|
settings = {
|
||||||
|
basedpyright = {
|
||||||
|
analysis = {
|
||||||
|
typeCheckingMode = "strict",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
12
nvim/.config/nvim/lua/plugins/lualine_theme.lua
Normal file
12
nvim/.config/nvim/lua/plugins/lualine_theme.lua
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
return {
|
||||||
|
-- This is the Lualine plugin. LazyVim usually enables it with `LazyVim.extras.ui.lualine`.
|
||||||
|
-- We're just providing `opts` here to override the theme.
|
||||||
|
{
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
opts = {
|
||||||
|
options = {
|
||||||
|
theme = "catppuccin", -- Set Lualine to use the catppuccin theme
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
27
nvim/.config/nvim/lua/plugins/obsidian.lua
Normal file
27
nvim/.config/nvim/lua/plugins/obsidian.lua
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
-- I don't know why I got rid of this lol, it's not like markdown-oxide was gonna replace it
|
||||||
|
-- For configuration options: https://github.com/obsidian-nvim/obsidian.nvim/blob/main/lua/obsidian/config/default.lua
|
||||||
|
return {
|
||||||
|
"obsidian-nvim/obsidian.nvim",
|
||||||
|
version = "*", -- recommended, use latest release instead of latest commit
|
||||||
|
ft = "markdown",
|
||||||
|
-- Replace the above line with this if you only want to load obsidian.nvim for markdown files in your vault:
|
||||||
|
-- event = {
|
||||||
|
-- -- If you want to use the home shortcut '~' here you need to call 'vim.fn.expand'.
|
||||||
|
-- -- E.g. "BufReadPre " .. vim.fn.expand "~" .. "/my-vault/*.md"
|
||||||
|
-- -- refer to `:h file-pattern` for more examples
|
||||||
|
-- "BufReadPre path/to/my-vault/*.md",
|
||||||
|
-- "BufNewFile path/to/my-vault/*.md",
|
||||||
|
-- },
|
||||||
|
---@module 'obsidian'
|
||||||
|
---@type obsidian.config
|
||||||
|
opts = {
|
||||||
|
workspaces = {
|
||||||
|
{
|
||||||
|
name = "Vault",
|
||||||
|
path = "~/Obsidian/Vault/",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- see below for full list of options 👇
|
||||||
|
},
|
||||||
|
}
|
||||||
25
nvim/.config/nvim/lua/plugins/presence.lua
Normal file
25
nvim/.config/nvim/lua/plugins/presence.lua
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
return {
|
||||||
|
"andweeb/presence.nvim",
|
||||||
|
opts = {
|
||||||
|
auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`)
|
||||||
|
neovim_image_text = "certifiably NOT getting laid", -- Text displayed when hovered over the Neovim image
|
||||||
|
main_image = "neovim", -- Main image display (either "neovim" or "file")
|
||||||
|
client_id = "793271441293967371", -- Use your own Discord application client id (not recommended)
|
||||||
|
log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error")
|
||||||
|
debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(<filename>, true)`)
|
||||||
|
enable_line_number = false, -- Displays the current line number instead of the current project
|
||||||
|
blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches
|
||||||
|
buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "<label>", url = "<url>" }, ...}`, or a function(buffer: string, repo_url: string|nil): table)
|
||||||
|
file_assets = {}, -- Custom file asset definitions keyed by file names and extensions (see default config at `lua/presence/file_assets.lua` for reference)
|
||||||
|
show_time = true, -- Show the timer
|
||||||
|
|
||||||
|
-- Rich Presence text options
|
||||||
|
editing_text = "Editing %s", -- Format string rendered when an editable file is loaded in the buffer (either string or function(filename: string): string)
|
||||||
|
file_explorer_text = "Browsing %s", -- Format string rendered when browsing a file explorer (either string or function(file_explorer_name: string): string)
|
||||||
|
git_commit_text = "Committing changes", -- Format string rendered when committing changes in git (either string or function(filename: string): string)
|
||||||
|
plugin_manager_text = "Managing plugins", -- Format string rendered when managing plugins (either string or function(plugin_manager_name: string): string)
|
||||||
|
reading_text = "Reading %s", -- Format string rendered when a read-only or unmodifiable file is loaded in the buffer (either string or function(filename: string): string)
|
||||||
|
workspace_text = "Working on %s", -- Format string rendered when in a git repository (either string or function(project_name: string|nil, filename: string): string)
|
||||||
|
line_number_text = "Line %s out of %s", -- Format string rendered when `enable_line_number` is set to true (either string or function(line_number: number, line_count: number): string)
|
||||||
|
},
|
||||||
|
}
|
||||||
6
nvim/.config/nvim/lua/plugins/suda.lua
Normal file
6
nvim/.config/nvim/lua/plugins/suda.lua
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
"lambdalisue/suda.vim",
|
||||||
|
config = function()
|
||||||
|
vim.g.suda_smart_edit = 1
|
||||||
|
end,
|
||||||
|
}
|
||||||
8
nvim/.config/nvim/lua/plugins/theme.lua
Normal file
8
nvim/.config/nvim/lua/plugins/theme.lua
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"LazyVim/LazyVim",
|
||||||
|
opts = {
|
||||||
|
colorscheme = "catppuccin-mocha"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
9
nvim/.config/nvim/lua/plugins/toggleterm.lua
Normal file
9
nvim/.config/nvim/lua/plugins/toggleterm.lua
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
-- Disabling until I get the colors figured out
|
||||||
|
return {
|
||||||
|
-- {
|
||||||
|
-- 'akinsho/toggleterm.nvim', version = "*", opts = {
|
||||||
|
-- open_mapping = [[<leader>t]]
|
||||||
|
-- }
|
||||||
|
-- }
|
||||||
|
}
|
||||||
|
|
||||||
3
nvim/.config/nvim/stylua.toml
Normal file
3
nvim/.config/nvim/stylua.toml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
indent_type = "Spaces"
|
||||||
|
indent_width = 2
|
||||||
|
column_width = 120
|
||||||
@@ -5,20 +5,6 @@
|
|||||||
# Palettes must be defined _after_ this line
|
# Palettes must be defined _after_ this line
|
||||||
palette = "catppuccin_mocha"
|
palette = "catppuccin_mocha"
|
||||||
|
|
||||||
# Starship modules
|
|
||||||
[character]
|
|
||||||
# I think I like mauve more than peach...might change it
|
|
||||||
success_symbol = "[[](green) ❯](mauve)"
|
|
||||||
error_symbol = "[[](red) ❯](mauve)"
|
|
||||||
vimcmd_symbol = "[ ❮](subtext1)" # For use with zsh-vi-mode
|
|
||||||
|
|
||||||
[git_branch]
|
|
||||||
style = "bold mauve"
|
|
||||||
|
|
||||||
[directory]
|
|
||||||
truncation_length = 4
|
|
||||||
style = "bold lavender"
|
|
||||||
|
|
||||||
# Palette definitions
|
# Palette definitions
|
||||||
[palettes.catppuccin_mocha]
|
[palettes.catppuccin_mocha]
|
||||||
rosewater = "#f5e0dc"
|
rosewater = "#f5e0dc"
|
||||||
@@ -48,3 +34,221 @@ base = "#1e1e2e"
|
|||||||
mantle = "#181825"
|
mantle = "#181825"
|
||||||
crust = "#11111b"
|
crust = "#11111b"
|
||||||
|
|
||||||
|
# Starship modules
|
||||||
|
[character]
|
||||||
|
# I think I like mauve more than peach...might change it
|
||||||
|
success_symbol = "[[](green) ❯](mauve)"
|
||||||
|
error_symbol = "[[](red) ❯](mauve)"
|
||||||
|
# For use with zsh-vi-mode (but I don't use zsh)
|
||||||
|
vimcmd_symbol = "[ ❮](subtext1)"
|
||||||
|
|
||||||
|
[directory]
|
||||||
|
truncation_length = 4
|
||||||
|
style = "bold lavender"
|
||||||
|
read_only = " "
|
||||||
|
|
||||||
|
[git_branch]
|
||||||
|
symbol = " "
|
||||||
|
style = "bold mauve"
|
||||||
|
|
||||||
|
[git_status]
|
||||||
|
# See I lied the idea, but it wasn't executed all that well
|
||||||
|
# Need to make sure the icons fit well together...
|
||||||
|
# conflicted = ''
|
||||||
|
# ahead = '⇡${count}'
|
||||||
|
# behind = '⇣${count}'
|
||||||
|
# diverged = '⇕⇡${ahead_count}⇣${behind_count}'
|
||||||
|
# up_to_date = '✓'
|
||||||
|
# untracked = ''
|
||||||
|
# stashed = '📦'
|
||||||
|
# modified = ''
|
||||||
|
# staged = '[++\($count\)](green)'
|
||||||
|
# renamed = ''
|
||||||
|
# deleted = '🗑'
|
||||||
|
|
||||||
|
[aws]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[buf]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[bun]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[c]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[cpp]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[cmake]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[conda]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[crystal]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[dart]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[deno]
|
||||||
|
symbol = " " # uh...nice?
|
||||||
|
|
||||||
|
[docker_context]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[elixir]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[elm]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[fennel]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[fossil_branch]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[gcloud]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[git_commit]
|
||||||
|
tag_symbol = ' '
|
||||||
|
|
||||||
|
[golang]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[guix_shell]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[haskell]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[haxe]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[hg_branch]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[hostname]
|
||||||
|
ssh_symbol = " "
|
||||||
|
|
||||||
|
[java]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[julia]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[kotlin]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[lua]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[memory_usage]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[meson]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[nim]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[nix_shell]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[nodejs]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[ocaml]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[os.symbols]
|
||||||
|
Alpaquita = " "
|
||||||
|
Alpine = " "
|
||||||
|
AlmaLinux = " "
|
||||||
|
Amazon = " "
|
||||||
|
Android = " "
|
||||||
|
Arch = " "
|
||||||
|
Artix = " "
|
||||||
|
CachyOS = " "
|
||||||
|
CentOS = " "
|
||||||
|
Debian = " "
|
||||||
|
DragonFly = " "
|
||||||
|
Emscripten = " "
|
||||||
|
EndeavourOS = " "
|
||||||
|
Fedora = " "
|
||||||
|
FreeBSD = " "
|
||||||
|
Garuda = " "
|
||||||
|
Gentoo = " "
|
||||||
|
HardenedBSD = " "
|
||||||
|
Illumos = " "
|
||||||
|
Kali = " "
|
||||||
|
Linux = " "
|
||||||
|
Mabox = " "
|
||||||
|
Macos = " "
|
||||||
|
Manjaro = " "
|
||||||
|
Mariner = " "
|
||||||
|
MidnightBSD = " "
|
||||||
|
Mint = " "
|
||||||
|
NetBSD = " "
|
||||||
|
NixOS = " "
|
||||||
|
Nobara = " "
|
||||||
|
OpenBSD = " "
|
||||||
|
openSUSE = " "
|
||||||
|
OracleLinux = " "
|
||||||
|
Pop = " "
|
||||||
|
Raspbian = " "
|
||||||
|
Redhat = " "
|
||||||
|
RedHatEnterprise = " "
|
||||||
|
RockyLinux = " "
|
||||||
|
Redox = " "
|
||||||
|
Solus = " "
|
||||||
|
SUSE = " "
|
||||||
|
Ubuntu = " "
|
||||||
|
Unknown = " "
|
||||||
|
Void = " "
|
||||||
|
Windows = " "
|
||||||
|
|
||||||
|
[package]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[perl]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[php]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[pijul_channel]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[pixi]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[python]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[rlang]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[ruby]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[rust]
|
||||||
|
# I think I like ferris more
|
||||||
|
symbol = " "
|
||||||
|
# symbol = " "
|
||||||
|
|
||||||
|
[scala]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[swift]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[zig]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[gradle]
|
||||||
|
symbol = " "
|
||||||
|
|||||||
1
themes/.themes/deepin-meets-arc
Submodule
1
themes/.themes/deepin-meets-arc
Submodule
Submodule themes/.themes/deepin-meets-arc added at 22e507b094
@@ -1,17 +1,19 @@
|
|||||||
# ~/.tmux.conf
|
|
||||||
|
|
||||||
# --- General Settings ---
|
# --- General Settings ---
|
||||||
# Set the main prefix to C-a
|
# Set the main prefix to C-a
|
||||||
set-option -g prefix C-a
|
set-option -g prefix C-a
|
||||||
|
|
||||||
# Set a secondary, "legacy" prefix to C-b for an easier transition
|
# Set a secondary, "legacy" prefix to C-b for an easier transition
|
||||||
set-option -g prefix2 C-b
|
# With the new changes forcing me to use tmux, we're gonna try C-a
|
||||||
|
# set-option -g prefix2 C-b
|
||||||
|
|
||||||
# Still unbind the default C-b binding for the "send-prefix" command,
|
# Still unbind the default C-b binding for the "send-prefix" command,
|
||||||
# as we want our primary prefix (C-a) to handle that.
|
# as we want our primary prefix (C-a) to handle that.
|
||||||
unbind C-b
|
unbind C-b
|
||||||
bind-key C-a send-prefix
|
bind-key C-a send-prefix
|
||||||
|
|
||||||
|
# Clipboard lol
|
||||||
|
set -g allow-passthrough on
|
||||||
|
|
||||||
# Start windows and panes at 1, not 0
|
# Start windows and panes at 1, not 0
|
||||||
set -g base-index 1
|
set -g base-index 1
|
||||||
setw -g pane-base-index 1
|
setw -g pane-base-index 1
|
||||||
@@ -46,6 +48,8 @@ set -g @plugin 'omerxx/tmux-sessionx' # Session manager
|
|||||||
set -g @plugin 'tmux-plugins/tmux-resurrect' # Allows tmux environments to be saved and restored via prefix Ctrl+s and Ctrl+r
|
set -g @plugin 'tmux-plugins/tmux-resurrect' # Allows tmux environments to be saved and restored via prefix Ctrl+s and Ctrl+r
|
||||||
# I would also like to look into stuff like nvim session restoration: https://github.com/tmux-plugins/tmux-resurrect
|
# I would also like to look into stuff like nvim session restoration: https://github.com/tmux-plugins/tmux-resurrect
|
||||||
set -g @plugin 'tmux-plugins/tmux-continuum' # Automatically saves with ^ every 15 minutes, and restores on tmux server start.
|
set -g @plugin 'tmux-plugins/tmux-continuum' # Automatically saves with ^ every 15 minutes, and restores on tmux server start.
|
||||||
|
# Restore tmux environment on server start
|
||||||
|
set -g @continuum-restore 'on'
|
||||||
# Note:
|
# Note:
|
||||||
# > In order to be executed periodically, the plugin updates the status-right tmux variable.
|
# > In order to be executed periodically, the plugin updates the status-right tmux variable.
|
||||||
# > In case some plugin (usually themes) overwrites the status-right variable, the autosave feature stops working.
|
# > In case some plugin (usually themes) overwrites the status-right variable, the autosave feature stops working.
|
||||||
|
|||||||
Reference in New Issue
Block a user