init commit
This commit is contained in:
103
fish/completions/copilot.fish
Normal file
103
fish/completions/copilot.fish
Normal file
@@ -0,0 +1,103 @@
|
||||
# fish completion for copilot
|
||||
# Generated by `copilot completion fish`. Do not edit by hand.
|
||||
|
||||
complete -c copilot -n '__fish_use_subcommand' -f -a 'login' -d 'Authenticate with Copilot'
|
||||
complete -c copilot -n '__fish_use_subcommand' -f -a 'help' -d 'Display help information'
|
||||
complete -c copilot -n '__fish_use_subcommand' -f -a 'init' -d 'Initialize Copilot instructions'
|
||||
complete -c copilot -n '__fish_use_subcommand' -f -a 'update' -d 'Download the latest version'
|
||||
complete -c copilot -n '__fish_use_subcommand' -f -a 'version' -d 'Display version information'
|
||||
complete -c copilot -n '__fish_use_subcommand' -f -a 'plugin' -d 'Manage plugins'
|
||||
complete -c copilot -n '__fish_use_subcommand' -f -a 'mcp' -d 'Manage MCP servers'
|
||||
complete -c copilot -n '__fish_use_subcommand' -f -a 'completion' -d 'Generate a shell completion script'
|
||||
complete -c copilot -l version -s v -f -d 'show version information'
|
||||
complete -c copilot -l interactive -s i -r -d 'Start interactive mode and automatically execute this prompt'
|
||||
complete -c copilot -l prompt -s p -r -d 'Execute a prompt in non-interactive mode (exits after completion)'
|
||||
complete -c copilot -l silent -s s -f -d 'Output only the agent response (no stats), useful for scripting with -p'
|
||||
complete -c copilot -l enable-memory -f -d 'Enable memory in prompt mode (disabled by default)'
|
||||
complete -c copilot -l model -r -d 'Set the AI model to use (use \'auto\' to let Copilot pick automatically)'
|
||||
complete -c copilot -l effort -l reasoning-effort -r -d 'Set the reasoning effort level' -a 'none low medium high xhigh max'
|
||||
complete -c copilot -l context -r -d 'Set the context window tier (overrides persisted setting)' -a 'default long_context'
|
||||
complete -c copilot -l enable-reasoning-summaries -f -d 'Request reasoning summaries for OpenAI models'
|
||||
complete -c copilot -l agent -r -d 'Specify a custom agent to use'
|
||||
complete -c copilot -l resume -s r -r -d 'Resume from a previous session (optionally specify existing session ID, task ID, ID prefix, or name; name matching is exact, case-insensitive)'
|
||||
complete -c copilot -l continue -f -d 'Resume the most recent session'
|
||||
complete -c copilot -l name -s n -r -d 'Set a name for the new session'
|
||||
complete -c copilot -l session-id -r -d 'Resume an existing session or task by ID, or set the UUID for a new session'
|
||||
complete -c copilot -l connect -r -d 'Connect directly to a remote session (optionally specify session ID or task ID)'
|
||||
complete -c copilot -l allow-all-tools -f -d 'Allow all tools to run automatically without confirmation; required for non-interactive mode'
|
||||
complete -c copilot -l allow-all-paths -f -d 'Disable file path verification and allow access to any path'
|
||||
complete -c copilot -l disallow-temp-dir -f -d 'Prevent automatic access to the system temporary directory'
|
||||
complete -c copilot -l no-custom-instructions -f -d 'Disable loading of custom instructions from AGENTS.md and related files'
|
||||
complete -c copilot -l no-auto-update -f -d 'Disable downloading CLI update automatically (disabled by default in CI environments)'
|
||||
complete -c copilot -l no-ask-user -f -d 'Disable the ask_user tool (agent works autonomously without asking questions)'
|
||||
complete -c copilot -l banner -f -d 'Show the startup banner'
|
||||
complete -c copilot -l no-color -f -d 'Disable all color output'
|
||||
complete -c copilot -l screen-reader -f -d 'Enable screen reader optimizations'
|
||||
complete -c copilot -l plain-diff -f -d 'Disable rich diff rendering (syntax highlighting via diff tool specified by git config)'
|
||||
complete -c copilot -s C -r -d 'Change working directory before doing anything else'
|
||||
complete -c copilot -l log-dir -r -d 'Set log file directory (default: ~/.copilot/logs/)'
|
||||
complete -c copilot -l extension-sdk-path -r -d 'Override the bundled @github/copilot-sdk injected into extension subprocesses with a local `copilot-sdk/` folder. Invalid paths fall back to the bundled SDK.'
|
||||
complete -c copilot -l log-level -r -d 'Set the log level' -a 'none error warning info debug all default'
|
||||
complete -c copilot -l stream -r -d 'Enable or disable streaming mode' -a 'on off'
|
||||
complete -c copilot -l output-format -r -d 'Output format: \'text\' (default) or \'json\' (JSONL, one JSON object per line)' -a 'text json'
|
||||
complete -c copilot -l share -r -d 'Share session to markdown file after completion in non-interactive mode (default: ./copilot-session-<id>.md)'
|
||||
complete -c copilot -l share-gist -f -d 'Share session to a secret GitHub gist after completion in non-interactive mode'
|
||||
complete -c copilot -l add-dir -r -d 'Add a directory to the allowed list for file access (can be used multiple times)'
|
||||
complete -c copilot -l attachment -r -d 'Attach a file (image or native document) to the initial prompt; only valid in non-interactive mode (can be used multiple times)'
|
||||
complete -c copilot -l disable-mcp-server -r -d 'Disable a specific MCP server (can be used multiple times)'
|
||||
complete -c copilot -l disable-builtin-mcps -f -d 'Disable all built-in MCP servers (currently: github-mcp-server)'
|
||||
complete -c copilot -l enable-all-github-mcp-tools -f -d 'Enable all GitHub MCP server tools instead of the default CLI subset. Overrides --add-github-mcp-toolset and --add-github-mcp-tool options.'
|
||||
complete -c copilot -l add-github-mcp-toolset -r -d 'Add a toolset to enable for the GitHub MCP server instead of the default CLI subset (can be used multiple times). Use "all" for all toolsets.'
|
||||
complete -c copilot -l add-github-mcp-tool -r -d 'Add a tool to enable for the GitHub MCP server instead of the default CLI subset (can be used multiple times). Use "*" for all tools.'
|
||||
complete -c copilot -l plugin-dir -r -d 'Load a plugin from a local directory (can be used multiple times)'
|
||||
complete -c copilot -l additional-mcp-config -r -d 'Additional MCP servers configuration as JSON string or file path (prefix with @) (can be used multiple times; augments config from ~/.copilot/mcp-config.json for this session)'
|
||||
complete -c copilot -l allow-tool -r -d 'Tools the CLI has permission to use; will not prompt for permission'
|
||||
complete -c copilot -l deny-tool -r -d 'Tools the CLI does not have permission to use; will not prompt for permission'
|
||||
complete -c copilot -l available-tools -r -d 'Only these tools will be available to the model'
|
||||
complete -c copilot -l excluded-tools -r -d 'These tools will not be available to the model'
|
||||
complete -c copilot -l secret-env-vars -r -d 'Environment variable names whose values are stripped from shell and MCP server environments and redacted from output (e.g., --secret-env-vars=MY_KEY,OTHER_KEY)'
|
||||
complete -c copilot -l allow-url -r -d 'Allow access to specific URLs or domains'
|
||||
complete -c copilot -l deny-url -r -d 'Deny access to specific URLs or domains, takes precedence over --allow-url'
|
||||
complete -c copilot -l allow-all-urls -f -d 'Allow access to all URLs without confirmation'
|
||||
complete -c copilot -l allow-all -f -d 'Enable all permissions (equivalent to --allow-all-tools --allow-all-paths --allow-all-urls)'
|
||||
complete -c copilot -l yolo -f -d 'Enable all permissions (equivalent to --allow-all-tools --allow-all-paths --allow-all-urls)'
|
||||
complete -c copilot -l max-autopilot-continues -r -d 'Maximum number of continuation messages in autopilot mode'
|
||||
complete -c copilot -l mode -r -d 'Set the initial agent mode' -a 'interactive plan autopilot'
|
||||
complete -c copilot -l autopilot -f -d 'Start in autopilot mode'
|
||||
complete -c copilot -l plan -f -d 'Start in plan mode'
|
||||
complete -c copilot -l experimental -f -d 'Enable experimental features'
|
||||
complete -c copilot -l no-experimental -f -d 'Disable experimental features'
|
||||
complete -c copilot -l bash-env -r -d 'Enable BASH_ENV support for bash shells (on|off)'
|
||||
complete -c copilot -l no-bash-env -f -d 'Disable BASH_ENV support for bash shells'
|
||||
complete -c copilot -l mouse -r -d 'Enable mouse support in alt screen mode (on|off)'
|
||||
complete -c copilot -l no-mouse -f -d 'Disable mouse support in alt screen mode'
|
||||
complete -c copilot -l acp -f -d 'Start as Agent Client Protocol server'
|
||||
complete -c copilot -l remote -f -d 'Enable remote control of your session from GitHub web and mobile'
|
||||
complete -c copilot -l no-remote -f -d 'Disable remote control of your session from GitHub web and mobile'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from login' -l host -r -d 'GitHub host URL (default: https://github.com)'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from plugin' -f -a 'install' -d 'Install a plugin'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from plugin' -f -a 'uninstall' -d 'Uninstall a plugin'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from plugin' -f -a 'update' -d 'Update a plugin'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from plugin' -f -a 'list' -d 'List installed plugins'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from plugin' -f -a 'marketplace' -d 'Manage plugin marketplaces'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from plugin; and __fish_seen_subcommand_from update' -l all -f -d 'Update all installed plugins'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from plugin; and __fish_seen_subcommand_from marketplace' -f -a 'add' -d 'Add a marketplace'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from plugin; and __fish_seen_subcommand_from marketplace' -f -a 'remove' -d 'Remove a marketplace'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from plugin; and __fish_seen_subcommand_from marketplace' -f -a 'list' -d 'List registered marketplaces'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from plugin; and __fish_seen_subcommand_from marketplace' -f -a 'browse' -d 'Browse plugins in a marketplace'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from plugin; and __fish_seen_subcommand_from marketplace' -f -a 'update' -d 'Update marketplace plugin catalogs'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from plugin; and __fish_seen_subcommand_from marketplace; and __fish_seen_subcommand_from remove' -l force -s f -f -d 'Force removal even if plugins are installed'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp' -f -a 'list' -d 'List configured MCP servers'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp' -f -a 'get' -d 'Show server details'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp' -f -a 'add' -d 'Add an MCP server'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp' -f -a 'remove' -d 'Remove an MCP server'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from list' -l json -f -d 'Output as JSON'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from get' -l json -f -d 'Output as JSON'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from get' -l show-secrets -f -d 'Show full environment variable and header values (masked by default)'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l transport -r -d 'Server transport' -a 'stdio http sse'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l env -r -d 'Environment variable (KEY=VALUE, can be repeated)'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l header -r -d 'HTTP header for remote servers, can be repeated'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l tools -r -d 'Tool filter: "*" for all, comma-separated list, or "" for none'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l timeout -r -d 'Timeout in milliseconds'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l json -f -d 'Output added config as JSON'
|
||||
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l show-secrets -f -d 'Show full environment variable and header values in output, masked by default'
|
||||
21
fish/completions/nvm.fish
Normal file
21
fish/completions/nvm.fish
Normal file
@@ -0,0 +1,21 @@
|
||||
complete --command nvm --exclusive
|
||||
complete --command nvm --exclusive --long version --description "Print version"
|
||||
complete --command nvm --exclusive --long help --description "Print help"
|
||||
complete --command nvm --long silent --description "Suppress standard output"
|
||||
|
||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments install --description "Download and activate the specified Node version"
|
||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments use --description "Activate the specified Node version in the current shell"
|
||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list --description "List installed Node versions"
|
||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list-remote --description "List available Node versions to install"
|
||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments current --description "Print the currently-active Node version"
|
||||
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from install" --arguments "(
|
||||
test -e $nvm_data && string split ' ' <$nvm_data/.index
|
||||
)"
|
||||
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use" --arguments "(_nvm_list | string split ' ')"
|
||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments uninstall --description "Uninstall the specified Node version"
|
||||
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from uninstall" --arguments "(
|
||||
_nvm_list | string split ' ' | string replace system ''
|
||||
)"
|
||||
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use uninstall" --arguments "(
|
||||
set --query nvm_default_version && echo default
|
||||
)"
|
||||
14
fish/conf.d/fish_frozen_key_bindings.fish
Normal file
14
fish/conf.d/fish_frozen_key_bindings.fish
Normal file
@@ -0,0 +1,14 @@
|
||||
# This file was created by fish when upgrading to version 4.3, to migrate
|
||||
# the 'fish_key_bindings' variable from its old default scope (universal)
|
||||
# to its new default scope (global). We recommend you delete this file
|
||||
# and configure key bindings in ~/.config/fish/config.fish if needed.
|
||||
|
||||
# set --global fish_key_bindings fish_default_key_bindings
|
||||
|
||||
# Prior to version 4.3, fish shipped an event handler that runs
|
||||
# `set --universal fish_key_bindings fish_default_key_bindings`
|
||||
# whenever the fish_key_bindings variable is erased.
|
||||
# This means that as long as any fish < 4.3 is still running on this system,
|
||||
# we cannot complete the migration.
|
||||
# As a workaround, erase the universal variable at every shell startup.
|
||||
set --erase --universal fish_key_bindings
|
||||
28
fish/conf.d/nvm.fish
Normal file
28
fish/conf.d/nvm.fish
Normal file
@@ -0,0 +1,28 @@
|
||||
set --query XDG_DATA_HOME || set --local XDG_DATA_HOME ~/.local/share
|
||||
set --query nvm_mirror || set --global nvm_mirror https://nodejs.org/dist
|
||||
set --query nvm_data || set --global nvm_data $XDG_DATA_HOME/nvm
|
||||
|
||||
function _nvm_install --on-event nvm_install
|
||||
test ! -d $nvm_data && command mkdir -p $nvm_data
|
||||
echo "Downloading the Node distribution index..." 2>/dev/null
|
||||
_nvm_index_update
|
||||
end
|
||||
|
||||
function _nvm_update --on-event nvm_update
|
||||
set --query --universal nvm_data && set --erase --universal nvm_data
|
||||
set --query --universal nvm_mirror && set --erase --universal nvm_mirror
|
||||
set --query nvm_mirror || set --global nvm_mirror https://nodejs.org/dist
|
||||
end
|
||||
|
||||
function _nvm_uninstall --on-event nvm_uninstall
|
||||
command rm -rf $nvm_data
|
||||
|
||||
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
|
||||
|
||||
set --names | string replace --filter --regex -- "^nvm" "set --erase nvm" | source
|
||||
functions --erase (functions --all | string match --entire --regex -- "^_nvm_")
|
||||
end
|
||||
|
||||
if status is-interactive && set --query nvm_default_version && ! set --query nvm_current_version
|
||||
nvm use --silent $nvm_default_version
|
||||
end
|
||||
1
fish/conf.d/rustup.fish
Normal file
1
fish/conf.d/rustup.fish
Normal file
@@ -0,0 +1 @@
|
||||
source "$HOME/.cargo/env.fish"
|
||||
45
fish/config.fish
Normal file
45
fish/config.fish
Normal file
@@ -0,0 +1,45 @@
|
||||
set fish_greeting ""
|
||||
if status is-interactive
|
||||
# Commands to run in interactive sessions can go here
|
||||
set -Ux EDITOR nvim
|
||||
|
||||
end
|
||||
|
||||
alias reloadwaybar='pkill -SIGUSR2 waybar'
|
||||
alias cd='z'
|
||||
alias man='wikiman'
|
||||
alias ovim='vim'
|
||||
alias vim='nvim'
|
||||
alias edit='nvim'
|
||||
source "$HOME/.cargo/env.fish"
|
||||
|
||||
# Start ssh-agent if not already running
|
||||
#if not pgrep -u (id -u) ssh-agent >/dev/null
|
||||
# ssh-agent -c | source
|
||||
#end
|
||||
|
||||
# Add SSH keys if not already added
|
||||
#if test -f ~/.ssh/id_ed25519
|
||||
# ssh-add -l >/dev/null 2>&1
|
||||
# or ssh-add ~/.ssh/id_ed25519
|
||||
#end
|
||||
|
||||
zoxide init fish | source
|
||||
|
||||
# Added by LM Studio CLI (lms)
|
||||
set -gx PATH $PATH /home/sortedcord/.lmstudio/bin
|
||||
# End of LM Studio CLI section
|
||||
|
||||
# pnpm
|
||||
set -gx PNPM_HOME "/home/sortedcord/.local/share/pnpm"
|
||||
if not string match -q -- $PNPM_HOME $PATH
|
||||
set -gx PATH "$PNPM_HOME" $PATH
|
||||
end
|
||||
# pnpm end
|
||||
|
||||
# claurst
|
||||
fish_add_path /home/sortedcord/.claurst/bin
|
||||
|
||||
|
||||
# Added by Antigravity CLI installer
|
||||
set -gx PATH "/home/sortedcord/.local/bin" $PATH
|
||||
1
fish/fish_plugins
Normal file
1
fish/fish_plugins
Normal file
@@ -0,0 +1 @@
|
||||
jorgebucaran/nvm.fish
|
||||
8
fish/fish_variables
Normal file
8
fish/fish_variables
Normal file
@@ -0,0 +1,8 @@
|
||||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR --export EDITOR:nvim
|
||||
SETUVAR __fish_initialized:4300
|
||||
SETUVAR _fisher_jorgebucaran_2F_nvm_2E_fish_files:\x7e/\x2econfig/fish/functions/_nvm_index_update\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_list\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_version_activate\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_version_deactivate\x2efish\x1e\x7e/\x2econfig/fish/functions/nvm\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/nvm\x2efish\x1e\x7e/\x2econfig/fish/completions/nvm\x2efish
|
||||
SETUVAR _fisher_plugins:jorgebucaran/nvm\x2efish
|
||||
SETUVAR _fisher_upgraded_to_4_4:\x1d
|
||||
SETUVAR fish_user_paths:/home/sortedcord/\x2eclaurst/bin\x1e/home/sortedcord/\x2elocal/bin
|
||||
20
fish/functions/_nvm_index_update.fish
Normal file
20
fish/functions/_nvm_index_update.fish
Normal file
@@ -0,0 +1,20 @@
|
||||
function _nvm_index_update
|
||||
test ! -d $nvm_data && command mkdir -p $nvm_data
|
||||
|
||||
set --local index $nvm_data/.index
|
||||
|
||||
if not command curl -q --location --silent $nvm_mirror/index.tab >$index.temp
|
||||
command rm -f $index.temp
|
||||
echo "nvm: Can't update index, host unavailable: \"$nvm_mirror\"" >&2
|
||||
return 1
|
||||
end
|
||||
|
||||
command awk -v OFS=\t '
|
||||
/v0.9.12/ { exit } # Unsupported
|
||||
NR > 1 {
|
||||
print $1 (NR == 2 ? " latest" : $10 != "-" ? " lts/" tolower($10) : "")
|
||||
}
|
||||
' $index.temp >$index
|
||||
|
||||
command rm -f $index.temp
|
||||
end
|
||||
14
fish/functions/_nvm_list.fish
Normal file
14
fish/functions/_nvm_list.fish
Normal file
@@ -0,0 +1,14 @@
|
||||
function _nvm_list
|
||||
set --local versions $nvm_data/*
|
||||
|
||||
set --query versions[1] &&
|
||||
string match --entire --regex -- (
|
||||
string replace --all -- $nvm_data/ "" $versions |
|
||||
string match --regex -- "v\d.+" |
|
||||
string escape --style=regex |
|
||||
string join "|"
|
||||
) <$nvm_data/.index
|
||||
|
||||
command --all node |
|
||||
string match --quiet --invert --regex -- "^$nvm_data" && echo system
|
||||
end
|
||||
4
fish/functions/_nvm_version_activate.fish
Normal file
4
fish/functions/_nvm_version_activate.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
function _nvm_version_activate --argument-names ver
|
||||
set --global --export nvm_current_version $ver
|
||||
set --prepend PATH $nvm_data/$ver/bin
|
||||
end
|
||||
5
fish/functions/_nvm_version_deactivate.fish
Normal file
5
fish/functions/_nvm_version_deactivate.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
function _nvm_version_deactivate --argument-names ver
|
||||
test "$nvm_current_version" = "$ver" && set --erase nvm_current_version
|
||||
set --local index (contains --index -- $nvm_data/$ver/bin $PATH) &&
|
||||
set --erase PATH[$index]
|
||||
end
|
||||
26
fish/functions/jpg2png.fish
Normal file
26
fish/functions/jpg2png.fish
Normal file
@@ -0,0 +1,26 @@
|
||||
function jpg2png --description "Convert a JPG image from URL to PNG format"
|
||||
if test (count $argv) -ne 2
|
||||
echo "Usage: jpg2png <source_url> <destination_path>"
|
||||
return 1
|
||||
end
|
||||
|
||||
set source $argv[1]
|
||||
set destination $argv[2]
|
||||
|
||||
set temp_jpg (mktemp --suffix=.jpg)
|
||||
|
||||
if not wget -O $temp_jpg $source 2>&1
|
||||
echo "Error: Failed to download JPG from $source"
|
||||
rm -f $temp_jpg
|
||||
return 1
|
||||
end
|
||||
|
||||
if not magick $temp_jpg $destination
|
||||
echo "Error: Failed to convert JPG to PNG"
|
||||
rm -f $temp_jpg
|
||||
return 1
|
||||
end
|
||||
|
||||
rm -f $temp_jpg
|
||||
echo "Successfully converted and saved to $destination"
|
||||
end
|
||||
237
fish/functions/nvm.fish
Normal file
237
fish/functions/nvm.fish
Normal file
@@ -0,0 +1,237 @@
|
||||
function nvm --description "Node version manager"
|
||||
for silent in --silent -s
|
||||
if set --local index (contains --index -- $silent $argv)
|
||||
set --erase argv[$index] && break
|
||||
end
|
||||
set --erase silent
|
||||
end
|
||||
|
||||
set --local cmd $argv[1]
|
||||
set --local ver $argv[2]
|
||||
|
||||
if set --query silent && ! set --query cmd[1]
|
||||
echo "nvm: Version number not specified (see nvm -h for usage)" >&2
|
||||
return 1
|
||||
end
|
||||
|
||||
if ! set --query ver[1] && contains -- "$cmd" install use
|
||||
for file in .nvmrc .node-version
|
||||
set file (_nvm_find_up $PWD $file) && read ver <$file && break
|
||||
end
|
||||
|
||||
if ! set --query ver[1]
|
||||
echo "nvm: Invalid version or missing \".nvmrc\" file" >&2
|
||||
return 1
|
||||
end
|
||||
end
|
||||
|
||||
set --local their_version $ver
|
||||
|
||||
switch "$cmd"
|
||||
case -v --version
|
||||
echo "nvm, version 2.2.18"
|
||||
case "" -h --help
|
||||
echo "Usage: nvm install <version> Download and activate the specified Node version"
|
||||
echo " nvm install Install the version specified in the nearest .nvmrc file"
|
||||
echo " nvm use <version> Activate the specified Node version in the current shell"
|
||||
echo " nvm use Activate the version specified in the nearest .nvmrc file"
|
||||
echo " nvm list List installed Node versions"
|
||||
echo " nvm list-remote List available Node versions to install"
|
||||
echo " nvm list-remote <regex> List Node versions matching a given regex pattern"
|
||||
echo " nvm current Print the currently-active Node version"
|
||||
echo " nvm uninstall <version> Uninstall the specified Node version"
|
||||
echo "Options:"
|
||||
echo " -s, --silent Suppress standard output"
|
||||
echo " -v, --version Print the version of nvm"
|
||||
echo " -h, --help Print this help message"
|
||||
echo "Variables:"
|
||||
echo " nvm_arch Override architecture, e.g. x64-musl"
|
||||
echo " nvm_mirror Use a mirror for downloading Node binaries"
|
||||
echo " nvm_default_version Set the default version for new shells"
|
||||
echo " nvm_default_packages Install a list of packages every time a Node version is installed"
|
||||
echo " nvm_data Set a custom directory for storing nvm data"
|
||||
echo "Examples:"
|
||||
echo " nvm install latest Install the latest version of Node"
|
||||
echo " nvm use 14.15.1 Use Node version 14.15.1"
|
||||
echo " nvm use system Activate the system's Node version"
|
||||
|
||||
case install
|
||||
_nvm_index_update
|
||||
|
||||
string match --entire --regex -- (_nvm_version_match $ver) <$nvm_data/.index | read ver alias
|
||||
|
||||
if ! set --query ver[1]
|
||||
echo "nvm: Invalid version number or alias: \"$their_version\"" >&2
|
||||
return 1
|
||||
end
|
||||
|
||||
if test ! -e $nvm_data/$ver
|
||||
set --local os (command uname -s | string lower)
|
||||
set --local ext tar.gz
|
||||
set --local arch (command uname -m)
|
||||
set --local tarcmd tar
|
||||
|
||||
switch $os
|
||||
case aix
|
||||
set arch ppc64
|
||||
case sunos
|
||||
case linux
|
||||
case darwin
|
||||
case {msys_nt,mingw\*_nt}\*
|
||||
set os win
|
||||
set ext zip
|
||||
set tarcmd bsdtar
|
||||
case \*
|
||||
echo "nvm: Unsupported operating system: \"$os\"" >&2
|
||||
return 1
|
||||
end
|
||||
|
||||
switch $arch
|
||||
case i\*86
|
||||
set arch x86
|
||||
case x86_64
|
||||
set arch x64
|
||||
case arm64
|
||||
string match --regex --quiet "v(?<major>\d+)" $ver
|
||||
if test "$os" = darwin -a $major -lt 16
|
||||
set arch x64
|
||||
end
|
||||
case armv6 armv6l
|
||||
set arch armv6l
|
||||
case armv7 armv7l
|
||||
set arch armv7l
|
||||
case armv8 armv8l aarch64
|
||||
set arch arm64
|
||||
end
|
||||
|
||||
set --query nvm_arch && set arch $nvm_arch
|
||||
|
||||
set --local dir "node-$ver-$os-$arch"
|
||||
set --local url $nvm_mirror/$ver/$dir.$ext
|
||||
|
||||
command mkdir -p $nvm_data/$ver
|
||||
|
||||
if ! set --query silent
|
||||
echo -e "Installing Node \x1b[1m$ver\x1b[22m $alias"
|
||||
echo -e "Fetching \x1b[4m$url\x1b[24m\x1b[7m"
|
||||
end
|
||||
|
||||
if ! command curl -q $silent --progress-bar --location $url |
|
||||
command $tarcmd --extract --gzip --directory $nvm_data/$ver 2>/dev/null
|
||||
command rm -rf $nvm_data/$ver
|
||||
echo -e "\033[F\33[2K\x1b[0mnvm: Invalid mirror or host unavailable: \"$url\"" >&2
|
||||
return 1
|
||||
end
|
||||
|
||||
set --query silent || echo -en "\033[F\33[2K\x1b[0m"
|
||||
|
||||
if test "$os" = win
|
||||
command mv $nvm_data/$ver/$dir $nvm_data/$ver/bin
|
||||
else
|
||||
command mv $nvm_data/$ver/$dir/* $nvm_data/$ver
|
||||
command rm -rf $nvm_data/$ver/$dir
|
||||
end
|
||||
end
|
||||
|
||||
if test $ver != "$nvm_current_version"
|
||||
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
|
||||
_nvm_version_activate $ver
|
||||
|
||||
set --query nvm_default_packages[1] && npm install --global $silent $nvm_default_packages
|
||||
end
|
||||
|
||||
set --query silent || printf "Now using Node %s (npm %s) %s\n" (_nvm_node_info)
|
||||
case use
|
||||
test $ver = default && set ver $nvm_default_version
|
||||
_nvm_list | string match --entire --regex -- (_nvm_version_match $ver) | read ver __
|
||||
|
||||
if ! set --query ver[1]
|
||||
echo "nvm: Can't use Node \"$their_version\", version must be installed first" >&2
|
||||
return 1
|
||||
end
|
||||
|
||||
if test $ver != "$nvm_current_version"
|
||||
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
|
||||
test $ver != system && _nvm_version_activate $ver
|
||||
end
|
||||
|
||||
set --query silent || printf "Now using Node %s (npm %s) %s\n" (_nvm_node_info)
|
||||
case uninstall
|
||||
if test -z "$ver"
|
||||
echo "nvm: Not enough arguments for command: \"$cmd\"" >&2
|
||||
return 1
|
||||
end
|
||||
|
||||
test $ver = default && test ! -z "$nvm_default_version" && set ver $nvm_default_version
|
||||
|
||||
_nvm_list | string match --entire --regex -- (_nvm_version_match $ver) | read ver __
|
||||
|
||||
if ! set -q ver[1]
|
||||
echo "nvm: Node version not installed or invalid: \"$their_version\"" >&2
|
||||
return 1
|
||||
end
|
||||
|
||||
set --query silent || printf "Uninstalling Node %s %s\n" $ver (string replace ~ \~ "$nvm_data/$ver/bin/node")
|
||||
|
||||
_nvm_version_deactivate $ver
|
||||
|
||||
command rm -rf $nvm_data/$ver
|
||||
case current
|
||||
_nvm_current
|
||||
case ls list
|
||||
_nvm_list | _nvm_list_format (_nvm_current) $argv[2]
|
||||
case lsr {ls,list}-remote
|
||||
_nvm_index_update || return
|
||||
_nvm_list | command awk '
|
||||
FILENAME == "-" && (is_local[$1] = FNR == NR) { next } {
|
||||
print $0 (is_local[$1] ? " ✓" : "")
|
||||
}
|
||||
' - $nvm_data/.index | _nvm_list_format (_nvm_current) $argv[2]
|
||||
case \*
|
||||
echo "nvm: Unknown command or option: \"$cmd\" (see nvm -h for usage)" >&2
|
||||
return 1
|
||||
end
|
||||
end
|
||||
|
||||
function _nvm_find_up --argument-names path file
|
||||
test -e "$path/$file" && echo $path/$file || begin
|
||||
test ! -z "$path" || return
|
||||
_nvm_find_up (string replace --regex -- '/[^/]*$' "" $path) $file
|
||||
end
|
||||
end
|
||||
|
||||
function _nvm_version_match --argument-names ver
|
||||
string replace --regex -- '^v?(\d+|\d+\.\d+)$' 'v$1.' $ver |
|
||||
string replace --filter --regex -- '^v?(\d+)' 'v$1' |
|
||||
string escape --style=regex || string lower '\b'$ver'(?:/\w+)?$'
|
||||
end
|
||||
|
||||
function _nvm_list_format --argument-names current regex
|
||||
command awk -v current="$current" -v regex="$regex" '
|
||||
$0 ~ regex {
|
||||
aliases[versions[i++] = $1] = $2 " " $3
|
||||
pad = (n = length($1)) > pad ? n : pad
|
||||
}
|
||||
END {
|
||||
if (!i) exit 1
|
||||
while (i--)
|
||||
printf((current == versions[i] ? " ▶ " : " ") "%"pad"s %s\n",
|
||||
versions[i], aliases[versions[i]])
|
||||
}
|
||||
'
|
||||
end
|
||||
|
||||
function _nvm_current
|
||||
command --search --quiet node || return
|
||||
set --query nvm_current_version && echo $nvm_current_version || echo system
|
||||
end
|
||||
|
||||
function _nvm_node_info
|
||||
set --local npm_path (string replace bin/npm-cli.js "" (realpath (command --search npm)))
|
||||
test -f $npm_path/package.json || set --local npm_version_default (command npm --version)
|
||||
command node --eval "
|
||||
console.log(process.version)
|
||||
console.log('$npm_version_default' ? '$npm_version_default': require('$npm_path/package.json').version)
|
||||
console.log(process.execPath)
|
||||
" | string replace -- ~ \~
|
||||
end
|
||||
8
fish/functions/y.fish
Normal file
8
fish/functions/y.fish
Normal file
@@ -0,0 +1,8 @@
|
||||
function y
|
||||
set tmp (mktemp -t "yazi-cwd.XXXXXX")
|
||||
yazi $argv --cwd-file="$tmp"
|
||||
if read -z cwd <"$tmp"; and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
|
||||
builtin cd -- "$cwd"
|
||||
end
|
||||
rm -f -- "$tmp"
|
||||
end
|
||||
16
hypr/environment.lua
Normal file
16
hypr/environment.lua
Normal file
@@ -0,0 +1,16 @@
|
||||
-- Use NVIDIA GBM + Vulkan for wlroots
|
||||
hl.env("WLR_RENDERER", "vulkan")
|
||||
hl.env("GBM_BACKEND", "nvidia-drm")
|
||||
hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
|
||||
|
||||
-- Ensure Hyprland runs fully on the NVIDIA GPU
|
||||
hl.env("__NV_PRIME_RENDER_OFFLOAD", "1")
|
||||
hl.env("__VK_LAYER_NV_optimus", "NVIDIA_only")
|
||||
hl.env("__NV_PRIME_RENDER_OFFLOAD_PROVIDER", "NVIDIA-G0")
|
||||
|
||||
-- Fix cursor and presentation glitches
|
||||
hl.env("WLR_NO_HARDWARE_CURSORS", "1")
|
||||
hl.env("WLR_DRM_DEVICES", "/dev/dri/card1")
|
||||
|
||||
-- Fix hyprquickframe preview rendering
|
||||
hl.env("QSG_RHI_BACKEND", "vulkan")
|
||||
479
hypr/hy3-usage.md
Normal file
479
hypr/hy3-usage.md
Normal file
@@ -0,0 +1,479 @@
|
||||
<img align="right" style="width: 256px" src="assets/logo.svg">
|
||||
|
||||
# hy3
|
||||
|
||||
<a href="https://matrix.to/#/#hy3:outfoxxed.me"><img src="https://img.shields.io/badge/Join%20the%20matrix%20room-%23hy3:outfoxxed.me-0dbd8b?logo=matrix&style=flat-square"></a>
|
||||
|
||||
i3 / sway like layout for [hyprland](https://github.com/hyprwm/hyprland).
|
||||
|
||||
[Installation](#installation), [Configuration](#configuration)
|
||||
|
||||
_Check the [changelog](./CHANGELOG.md) for a list of new features and improvements_
|
||||
|
||||
### Features
|
||||
|
||||
- [x] i3 like tiling
|
||||
- [x] Node based window manipulation (you can interact with multiple windows at once)
|
||||
- [x] Greatly improved tabbed node groups over base hyprland
|
||||
- [x] Optional autotiling
|
||||
|
||||
Additional features may be suggested in the repo issues or the [matrix room](https://matrix.to/#/#hy3:outfoxxed.me).
|
||||
|
||||
### Demo
|
||||
|
||||
<video width="640" height="360" controls="controls" src="https://github.com/user-attachments/assets/ed2fe78d-8c31-47d8-a91d-e89aed42189c"></video>
|
||||
|
||||
---
|
||||
|
||||
In addition to hy3, I maintain [Quickshell](https://quickshell.outfoxxed.me/?utm_source=hy3-readme),
|
||||
a toolkit for creating custom bars, widgets, lockscreens, and other desktop shell components
|
||||
with first class support for Hyprland.
|
||||
|
||||
If that sounds interesting, check out the [website](https://quickshell.outfoxxed.me/?utm_source=hy3-readme).
|
||||
|
||||
---
|
||||
|
||||
### Stability
|
||||
|
||||
hy3 has a tagged release for each hyprland update, and master tracks hyprland's main branch.
|
||||
If you are running a release version of hyprland then use the matching tagged hy3 version.
|
||||
If you are running an untagged hyprland release then use the `master` branch of hy3.
|
||||
|
||||
Commits are tested before pushing and will build against the hyprland release **in the flake.lock file**.
|
||||
There may be a mismatch with hyprland's main branch. If hy3 fails to build against hyprland's main branch
|
||||
please make an issue or ping me in the [hy3 matrix room](https://matrix.to/#/#hy3-support:outfoxxed.me).
|
||||
|
||||
Tagged hy3 versions are always checked against the corresponding hyprland tag.
|
||||
|
||||
If you encounter any bugs, please report them in the issue tracker.
|
||||
|
||||
When reporting bugs, please include:
|
||||
|
||||
- Commit hash of the version you are running.
|
||||
- Steps to reproduce the bug (if you can figure them out)
|
||||
- backtrace of the crash (if applicable)
|
||||
|
||||
## Installation
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The master branch of hy3 follows the master branch of hyprland.
|
||||
> Attempting to use a mismatched hyprland release will result in failure when building or loading hy3.
|
||||
>
|
||||
> To use hy3 against a release version of hyprland,
|
||||
> check out the matching hy3 tag for the hyprland version.
|
||||
> hy3 tags are formatted as `hl{version}` where `{version}` matches the release version of hyprland.
|
||||
|
||||
### Nix
|
||||
|
||||
#### Hyprland home manager module
|
||||
|
||||
Assuming you use hyprland's home manager module, you can easily integrate hy3 by adding it to the plugins array.
|
||||
|
||||
```nix
|
||||
# flake.nix
|
||||
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1&ref={version}";
|
||||
# where {version} is the hyprland release version
|
||||
# or "github:hyprwm/Hyprland?submodules=1" to follow the development branch
|
||||
|
||||
hy3 = {
|
||||
url = "github:outfoxxed/hy3?ref=hl{version}"; # where {version} is the hyprland release version
|
||||
# or "github:outfoxxed/hy3" to follow the development branch.
|
||||
# (you may encounter issues if you dont do the same for hyprland)
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { nixpkgs, home-manager, hyprland, hy3, ... }: {
|
||||
homeConfigurations."user@hostname" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
|
||||
modules = [
|
||||
hyprland.homeManagerModules.default
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
plugins = [ hy3.packages.x86_64-linux.hy3 ];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
#### Manual (Nix)
|
||||
|
||||
hy3's binary is availible as `${hy3.packages.<system>.hy3}/lib/libhy3.so`, so you can also
|
||||
directly use it in your hyprland config like so:
|
||||
|
||||
```nix
|
||||
# ...
|
||||
wayland.windowManager.hyprland = {
|
||||
# ...
|
||||
extraConfig = ''
|
||||
plugin = ${hy3.packages.x86_64-linux.hy3}/lib/libhy3.so
|
||||
'';
|
||||
};
|
||||
```
|
||||
|
||||
### hyprpm
|
||||
|
||||
Hyprland now has a dedicated plugin manager, which should be used when your package manager
|
||||
isn't capable of locking hy3 builds to the correct hyprland version.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Make sure hyprpm is activated by putting
|
||||
>
|
||||
> ```conf
|
||||
> exec-once = hyprpm reload -n
|
||||
> ```
|
||||
>
|
||||
> in your hyprland.conf. (See [the wiki](https://wiki.hyprland.org/Plugins/Using-Plugins/) for details.)
|
||||
|
||||
To install hy3 via hyprpm run
|
||||
|
||||
```sh
|
||||
hyprpm add https://github.com/outfoxxed/hy3
|
||||
```
|
||||
|
||||
To update hy3 (and all other plugins), run
|
||||
|
||||
```sh
|
||||
hyprpm update
|
||||
```
|
||||
|
||||
Sometimes the headers from hyprland are not updated, if this happens run (See [issue #109](https://github.com/outfoxxed/hy3/issues/109) for an example of where this happened)
|
||||
|
||||
```sh
|
||||
hyprpm update -f
|
||||
```
|
||||
|
||||
(See [the wiki](https://wiki.hyprland.org/Plugins/Using-Plugins/) for details.)
|
||||
|
||||
> [!WARNING]
|
||||
> When you are running a tagged hyprland version hyprpm (0.34.0+) will build against hy3's
|
||||
> corrosponding release. However if you are running an untagged build (aka `-git`) hyprpm
|
||||
> will build against hy3's _latest_ commit. This means **if you are running an out of date
|
||||
> untagged build of hyprland, hyprpm may pick an incompatible revision of hy3**.
|
||||
>
|
||||
> To fix this problem you will either need to update hyprland or manually build the correct
|
||||
> version of hy3.
|
||||
|
||||
### Manual
|
||||
|
||||
Install hyprland, including its headers and pkg-config file, then run the following commands:
|
||||
|
||||
```sh
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -B build
|
||||
cmake --build build
|
||||
```
|
||||
|
||||
The plugin will be located at `build/libhy3.so`, and you can load it normally
|
||||
(See [the hyprland wiki](https://wiki.hyprland.org/Plugins/Using-Plugins/#installing--using-plugins) for details.)
|
||||
|
||||
Note that the hyprland headers and pkg-config file **MUST be installed correctly, for the target version of hyprland**.
|
||||
|
||||
### Arch (AUR)
|
||||
|
||||
> [!NOTE]
|
||||
> This method of installation is deprecated and you should use _hyprpm_ instead,
|
||||
> as it is simpler and less error prone.
|
||||
|
||||
> [!CAUTION]
|
||||
> Pacman is not very reliable when it comes to building packages in the correct order.
|
||||
> If you get a notification saying _hy3 was compiled for a different version of hyprland_
|
||||
> then your packages likely updated in the wrong order, or you have hyprland headers in `/usr/local`.
|
||||
>
|
||||
> To fix this, remove `/usr/include/hyprland`, `/usr/local/include/hyprland`, `/usr/share/pkgconfig/hyprland.pc` and `/usr/local/share/pkgconfig/hyprland.pc`,
|
||||
> then reinstall hyprland and hy3.
|
||||
>
|
||||
> If you know how to fix this please open an issue or pr, or message `@outfoxxed:outfoxxed.me` in the [matrix room](https://matrix.to/#/#hy3-support:outfoxxed.me).
|
||||
|
||||
hy3 stable (for arch's `hyprland` package) is availible on the AUR as [hy3](https://aur.archlinux.org/packages/hy3).
|
||||
|
||||
hy3-git (for `hyprland-git` on the AUR, unofficial package) is availible on the AUR as [hy3-git](https://aur.archlinux.org/packages/hy3-git).
|
||||
|
||||
Both packages install hy3 as `/usr/lib/libhy3.so`.
|
||||
You can enable it in your hyprland configuration by adding the following line anywhere in your `hyprland.conf`
|
||||
|
||||
```conf
|
||||
plugin = /usr/lib/libhy3.so
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The configuration listed below is for the current hy3 commit.
|
||||
> If you are using a release version of hy3 then make sure you are
|
||||
> reading the tagged revision of this readme.
|
||||
|
||||
Set your `general:layout` to `hy3` in hyprland.conf.
|
||||
|
||||
hy3 requires using a few custom dispatchers for normal operation.
|
||||
In your hyprland config replace the following dispatchers:
|
||||
|
||||
- `movefocus` -> `hy3:movefocus`
|
||||
- `movewindow` -> `hy3:movewindow`
|
||||
|
||||
You can use `hy3:makegroup` to create a new split.
|
||||
|
||||
The [dispatcher list](#dispatcher-list) and [config fields](#config-fields) sections have all the
|
||||
configuration options, and some explanation as to what they do.
|
||||
[The hyprland config in my dots](https://git.outfoxxed.me/outfoxxed/nixnew/src/branch/master/modules/hyprland/hyprland.conf) can also be used as a reference.
|
||||
|
||||
### Config fields
|
||||
|
||||
```conf
|
||||
plugin {
|
||||
hy3 {
|
||||
# policy controlling what happens when a node is removed from a group,
|
||||
# leaving only a group
|
||||
# 0 = remove the nested group
|
||||
# 1 = keep the nested group
|
||||
# 2 = keep the nested group only if its parent is a tab group
|
||||
node_collapse_policy = <int> # default: 2
|
||||
|
||||
# offset from group split direction when only one window is in a group
|
||||
group_inset = <int> # default: 10
|
||||
|
||||
# if a tab group will automatically be created for the first window spawned in a workspace
|
||||
tab_first_window = <bool>
|
||||
|
||||
# tab group settings
|
||||
tabs {
|
||||
# height of the tab bar
|
||||
height = <int> # default: 22
|
||||
|
||||
# padding between the tab bar and its focused node
|
||||
padding = <int> # default: 6
|
||||
|
||||
# the tab bar should animate in/out from the top instead of below the window
|
||||
from_top = <bool> # default: false
|
||||
|
||||
# radius of tab bar corners
|
||||
radius = <int> # default: 6
|
||||
|
||||
# tab bar border width
|
||||
border_width = <int> # default: 2
|
||||
|
||||
# render the window title on the bar
|
||||
render_text = <bool> # default: true
|
||||
|
||||
# center the window title
|
||||
text_center = <bool> # default: true
|
||||
|
||||
# font to render the window title with
|
||||
text_font = <string> # default: Sans
|
||||
|
||||
# height of the window title
|
||||
text_height = <int> # default: 8
|
||||
|
||||
# left padding of the window title
|
||||
text_padding = <int> # default: 3
|
||||
|
||||
colors {
|
||||
# active tab bar segment colors
|
||||
active = <color> # default: rgba(33ccff40)
|
||||
active_border = <color> # default: rgba(33ccffee)
|
||||
active_text = <color> # default: rgba(ffffffff)
|
||||
|
||||
# active tab bar segment colors for bars on an unfocused monitor
|
||||
active_alt_monitor = <color> # default: rgba(60606040)
|
||||
active_alt_monitor_border = <color> # default: rgba(808080ee)
|
||||
active_alt_monitor_text = <color> # default: rgba(ffffffff)
|
||||
|
||||
# focused tab bar segment colors (focused node in unfocused container)
|
||||
focused = <color> # default: rgba(60606040)
|
||||
focused_border = <color> # default: rgba(808080ee)
|
||||
focused_text = <color> # default: rgba(ffffffff)
|
||||
|
||||
# inactive tab bar segment colors
|
||||
inactive = <color> # default: rgba(30303020)
|
||||
inactive_border = <color> # default: rgba(606060aa)
|
||||
inactive_text = <color> # default: rgba(ffffffff)
|
||||
|
||||
# urgent tab bar segment colors
|
||||
urgent = <color> # default: rgba(ff223340)
|
||||
urgent_border = <color> # default: rgba(ff2233ee)
|
||||
urgent_text = <color> # default: rgba(ffffffff)
|
||||
|
||||
# locked tab bar segment colors
|
||||
locked = <color> # default: rgba(90903340)
|
||||
locked_border = <color> # default: rgba(909033ee)
|
||||
locked_text = <color> # default: rgba(ffffffff)
|
||||
}
|
||||
|
||||
# if tab backgrounds should be blurred
|
||||
# Blur is only visible when the above colors are not opaque.
|
||||
blur = <bool> # default: true
|
||||
|
||||
# opacity multiplier for tabs
|
||||
# Applies to blur as well as the given colors.
|
||||
opacity = <float> # default: 1.0
|
||||
}
|
||||
|
||||
# autotiling settings
|
||||
autotile {
|
||||
# enable autotile
|
||||
enable = <bool> # default: false
|
||||
|
||||
# make autotile-created groups ephemeral
|
||||
ephemeral_groups = <bool> # default: true
|
||||
|
||||
# if a window would be squished smaller than this width, a vertical split will be created
|
||||
# -1 = never automatically split vertically
|
||||
# 0 = always automatically split vertically
|
||||
# <number> = pixel width to split at
|
||||
trigger_width = <int> # default: 0
|
||||
|
||||
# if a window would be squished smaller than this height, a horizontal split will be created
|
||||
# -1 = never automatically split horizontally
|
||||
# 0 = always automatically split horizontally
|
||||
# <number> = pixel height to split at
|
||||
trigger_height = <int> # default: 0
|
||||
|
||||
# a space or comma separated list of workspace ids where autotile should be enabled
|
||||
# it's possible to create an exception rule by prefixing the definition with "not:"
|
||||
# workspaces = 1,2 # autotiling will only be enabled on workspaces 1 and 2
|
||||
# workspaces = not:1,2 # autotiling will be enabled on all workspaces except 1 and 2
|
||||
workspaces = <string> # default: all
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Dispatcher list
|
||||
|
||||
- `hy3:makegroup, <h | v | opposite | tab>, [toggle], [ephemeral | force_ephemeral]` - make a vertical / horizontal split or tab group
|
||||
- `toggle` - if the focused node is the only child of its parent, which is of the type specified, the node's parent will be removed.
|
||||
- `ephemeral` - the group will be removed once it contains only one node. does not affect existing groups.
|
||||
- `force_ephemeral` - same as ephemeral, but converts existing single windows groups.
|
||||
- `hy3:changegroup, <h | v | tab | untab | toggletab | opposite>` - change the group the node belongs to, to a different layout
|
||||
- `untab` will untab the group if it was previously tabbed
|
||||
- `toggletab` will untab if group is tabbed, and tab if group is untabbed
|
||||
- `opposite` will toggle between horizontal and vertical layouts if the group is not tabbed.
|
||||
- `hy3:setephemeral, <true | false>` - change the ephemerality of the group the node belongs to
|
||||
- `hy3:movefocus, <l | u | d | r | left | down | up | right>, [visible], [warp | nowarp]` - move the focus left, up, down, or right
|
||||
- `visible` - only move between visible nodes, not hidden tabs
|
||||
- `warp` - warp the mouse to the selected window, even if `general:no_cursor_warps` is true.
|
||||
- `nowarp` - does not warp the mouse to the selected window, even if `general:no_cursor_warps` is false.
|
||||
- `hy3:warpcursor` - warp the cursor to the center of the focused node
|
||||
- `hy3:movewindow, <l | u | d | r | left | down | up | right>, [once], [visible]` - move a window left, up, down, or right
|
||||
- `once` - only move directly to the neighboring group, without moving into any of its subgroups
|
||||
- `visible` - only move between visible nodes, not hidden tabs
|
||||
- `hy3:movetoworkspace, <workspace>, [follow, [warp | nowarp]]` - move the active node to the given workspace
|
||||
- `follow` - change focus to the given workspace when moving the selected node
|
||||
- `warp` - warp the mouse to the selected window, even if `general:no_cursor_warps` is true.
|
||||
- `nowarp` - does not warp the mouse to the selected window, even if `general:no_cursor_warps` is false.
|
||||
- `hy3:killactive` - close all windows in the focused node
|
||||
- `hy3:changefocus, <top | bottom | raise | lower | tab | tabnode>`
|
||||
- `top` - focus all nodes in the workspace
|
||||
- `bottom` - focus the single root selection window
|
||||
- `raise` - raise focus one level
|
||||
- `lower` - lower focus one level
|
||||
- `tab` - raise focus to the nearest tab
|
||||
- `tabnode` - raise focus to the nearest node under the tab
|
||||
- `hy3:togglefocuslayer, [nowarp]` - toggle focus between tiled and floating layers
|
||||
- `nowarp` - do not warp the mouse to the newly focused window
|
||||
- `hy3:focustab, [l | r | left | right | index, <index>], [prioritize_hovered | require_hovered], [wrap]`
|
||||
- `l | r | left | right` - direction to change focus towards
|
||||
- `index, <index>` - select the `index`th tab
|
||||
- `prioritize_hovered` - prioritize the tab group under the mouse when multiple are stacked. use the lowest group if none is under the mouse.
|
||||
- `require_hovered` - affect the tab group under the mouse. do nothing if none are hovered.
|
||||
- `wrap` - wrap to the opposite size of the tab bar if moving off the end
|
||||
- `hy3:locktab, [lock | unlock]` - lock the current tab, makingg it behave like a node
|
||||
- `hy3:debugnodes` - print the node tree into the hyprland log
|
||||
- :warning: **ALPHA QUALITY** `hy3:setswallow, <true | false | toggle>` - set the containing node's window swallow state
|
||||
- :warning: **ALPHA QUALITY** `hy3:expand, <expand | shrink | base>` - expand the current node to cover other nodes
|
||||
- `expand` - expand by one node
|
||||
- `shrink` - shrink by one node
|
||||
- `base` - undo all expansions
|
||||
- `hy3:equalize, [workspace]` - equalize window sizes in group
|
||||
- no argument: equalizes immediate siblings of the focused window
|
||||
- `workspace`: equalizes all windows across the entire workspace tree
|
||||
|
||||
### Lua dispatchers
|
||||
|
||||
When using Hyprland's Lua config, hy3 exposes dispatcher factories under `hl.plugin.hy3`.
|
||||
The returned functions can be passed to `hl.bind(...)`.
|
||||
|
||||
```lua
|
||||
local hy3 = hl.plugin.hy3
|
||||
|
||||
-- all factories return dispatcher functions and dispatchers return no values
|
||||
-- option tables are optional except for focus_tab
|
||||
|
||||
hy3.make_group("h" | "v" | "tab" | "opposite", {
|
||||
toggle = true | false, -- default: false
|
||||
ephemeral = true | false | "force", -- default: false
|
||||
})
|
||||
|
||||
hy3.change_group("h" | "v" | "tab" | "untab" | "toggletab" | "opposite")
|
||||
|
||||
hy3.set_ephemeral(true | false | "true" | "false")
|
||||
|
||||
hy3.move_focus("l" | "r" | "u" | "d" | "left" | "right" | "up" | "down", {
|
||||
visible = true | false, -- default: false
|
||||
warp = true | false, -- default: follows cursor:no_warps
|
||||
})
|
||||
|
||||
hy3.toggle_focus_layer({
|
||||
warp = true | false, -- default: true
|
||||
})
|
||||
|
||||
hy3.warp_cursor()
|
||||
|
||||
hy3.move_window("l" | "r" | "u" | "d" | "left" | "right" | "up" | "down", {
|
||||
once = true | false, -- default: false
|
||||
visible = true | false, -- default: false
|
||||
})
|
||||
|
||||
hy3.move_to_workspace("<workspace>", {
|
||||
follow = true | false, -- default: false
|
||||
warp = true | false, -- default: follows cursor:no_warps when follow = true
|
||||
})
|
||||
|
||||
hy3.change_focus("top" | "bottom" | "raise" | "lower" | "tab" | "tabnode")
|
||||
|
||||
-- direction and index are mutually exclusive
|
||||
hy3.focus_tab({
|
||||
direction = "l" | "r" | "left" | "right",
|
||||
mouse = "ignore" | "prioritize_hovered" | "require_hovered", -- default: "ignore"
|
||||
wrap = true | false, -- default: false
|
||||
})
|
||||
|
||||
hy3.focus_tab({
|
||||
index = <number>,
|
||||
mouse = "ignore" | "prioritize_hovered" | "require_hovered", -- default: "ignore"
|
||||
wrap = true | false, -- default: false
|
||||
})
|
||||
|
||||
hy3.set_swallow(true | false | "true" | "false" | "toggle")
|
||||
|
||||
hy3.kill_active()
|
||||
|
||||
hy3.expand("expand" | "shrink" | "base" | "maximize" | "fullscreen", {
|
||||
fullscreen = "" | "intermediate_maximize" | "fullscreen_maximize" | "maximize_only",
|
||||
})
|
||||
|
||||
hy3.lock_tab(nil | "" | "toggle" | "lock" | "unlock")
|
||||
|
||||
hy3.equalize({
|
||||
scope = "" | "group" | "workspace", -- default: "group"
|
||||
workspace = true | false, -- overrides scope if present
|
||||
recursive = true | false, -- overrides workspace if present
|
||||
})
|
||||
|
||||
hy3.debug_nodes()
|
||||
```
|
||||
346
hypr/hyprland.lua
Normal file
346
hypr/hyprland.lua
Normal file
@@ -0,0 +1,346 @@
|
||||
-- This is an example Hyprland Lua config file.
|
||||
-- Refer to the wiki for more information.
|
||||
-- https://wiki.hypr.land/Configuring/Start/
|
||||
|
||||
-- Please note not all available settings / options are set here.
|
||||
-- For a full list, see the wiki
|
||||
|
||||
-- You can (and should!!) split this configuration into multiple files
|
||||
-- Create your files separately and then require them like this:
|
||||
-- require("myColors")
|
||||
require("environment")
|
||||
local colors = require("rose-pine")
|
||||
|
||||
------------------
|
||||
---- MONITORS ----
|
||||
------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Monitors/
|
||||
hl.monitor({
|
||||
output = "DP-1",
|
||||
mode = "1920x1080@100",
|
||||
position = "0x0",
|
||||
scale = 1,
|
||||
})
|
||||
|
||||
hl.monitor({
|
||||
output = "HDMI-A-1",
|
||||
mode = "1920x1080@60",
|
||||
position = "1920x0",
|
||||
scale = 1.25,
|
||||
})
|
||||
|
||||
---------------------
|
||||
---- MY PROGRAMS ----
|
||||
---------------------
|
||||
|
||||
-- Set programs that you use
|
||||
local terminal = "kitty"
|
||||
local fileManager = "kitty"
|
||||
local menu = "hyprlauncher"
|
||||
local browser = "vivaldi-stable --enable-features=AcceleratedVideoEncoder"
|
||||
local browserPrivate = "vivaldi --incognito --enable-features=AcceleratedVideoEncoder"
|
||||
|
||||
-------------------
|
||||
---- AUTOSTART ----
|
||||
-------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Autostart/
|
||||
|
||||
-- Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
-- Or execute your favorite apps at launch like this:
|
||||
hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("swaybg -i /home/sortedcord/Pictures/Wallpapers/cliff.jpg -m fill")
|
||||
hl.exec_cmd("wayle shell")
|
||||
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
|
||||
hl.exec_cmd("quickshell")
|
||||
hl.exec_cmd("hyprpm reload -n")
|
||||
end)
|
||||
|
||||
-------------------------------
|
||||
---- ENVIRONMENT VARIABLES ----
|
||||
-------------------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/
|
||||
|
||||
hl.env("XCURSOR_SIZE", "24")
|
||||
hl.env("HYPRCURSOR_SIZE", "24")
|
||||
hl.env("bitdepth", "10")
|
||||
hl.env("XDG_DESKTOP_PORTAL_HYPRLAND_FORCE_SHM", "1")
|
||||
|
||||
-----------------------
|
||||
----- PERMISSIONS -----
|
||||
-----------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Permissions/
|
||||
-- Please note permission changes here require a Hyprland restart and are not applied on-the-fly
|
||||
-- for security reasons
|
||||
|
||||
-- hl.config({
|
||||
-- ecosystem = {
|
||||
-- enforce_permissions = true,
|
||||
-- },
|
||||
-- })
|
||||
|
||||
-- hl.permission("/usr/(bin|local/bin)/grim", "screencopy", "allow")
|
||||
-- hl.permission("/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland", "screencopy", "allow")
|
||||
-- hl.permission("/usr/(bin|local/bin)/hyprpm", "plugin", "allow")
|
||||
|
||||
-----------------------
|
||||
---- LOOK AND FEEL ----
|
||||
-----------------------
|
||||
|
||||
-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
|
||||
hl.config({
|
||||
general = {
|
||||
gaps_in = 3,
|
||||
gaps_out = 3,
|
||||
|
||||
border_size = 2,
|
||||
|
||||
col = {
|
||||
active_border = colors.rose,
|
||||
inactive_border = colors.muted,
|
||||
},
|
||||
|
||||
-- Set to true to enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false,
|
||||
|
||||
-- Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Tearing/ before you turn this on
|
||||
allow_tearing = false,
|
||||
|
||||
layout = "hy3",
|
||||
},
|
||||
|
||||
decoration = {
|
||||
rounding = 0,
|
||||
rounding_power = 0,
|
||||
|
||||
-- Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0,
|
||||
inactive_opacity = 1.0,
|
||||
|
||||
shadow = {
|
||||
enabled = false,
|
||||
range = 4,
|
||||
render_power = 3,
|
||||
color = 0xee1a1a1a,
|
||||
},
|
||||
|
||||
blur = {
|
||||
enabled = false,
|
||||
size = 3,
|
||||
passes = 1,
|
||||
vibrancy = 0.1696,
|
||||
},
|
||||
},
|
||||
|
||||
animations = {
|
||||
enabled = false,
|
||||
},
|
||||
})
|
||||
|
||||
-- hy3 plugin settings for i3-like tabbing & container layout
|
||||
hl.config({
|
||||
plugin = {
|
||||
hy3 = {
|
||||
-- policy controlling what happens when a node is removed from a group,
|
||||
-- leaving only a group
|
||||
-- 0 = remove the nested group
|
||||
-- 1 = keep the nested group
|
||||
-- 2 = keep the nested group only if its parent is a tab group
|
||||
node_collapse_policy = 2,
|
||||
|
||||
-- offset from group split direction when only one window is in a group
|
||||
group_inset = 10,
|
||||
|
||||
-- if a tab group will automatically be created for the first window spawned in a workspace
|
||||
tab_first_window = false,
|
||||
|
||||
-- tab group settings
|
||||
tabs = {
|
||||
-- height of the tab bar
|
||||
height = 20,
|
||||
|
||||
-- padding between the tab bar and its focused node
|
||||
padding = 3,
|
||||
|
||||
-- the tab bar should animate in/out from the top instead of below the window
|
||||
from_top = false,
|
||||
|
||||
-- radius of tab bar corners
|
||||
radius = 0,
|
||||
|
||||
-- tab bar border width
|
||||
border_width = 2,
|
||||
|
||||
-- render the window title on the bar
|
||||
render_text = true,
|
||||
|
||||
-- center the window title
|
||||
text_center = true,
|
||||
|
||||
-- font to render the window title with
|
||||
text_font = "Sans",
|
||||
|
||||
-- height of the window title
|
||||
text_height = 10,
|
||||
|
||||
-- left padding of the window title
|
||||
text_padding = 3,
|
||||
|
||||
colors = {
|
||||
-- active tab bar segment colors (using Rose Pine colors, fully opaque)
|
||||
active = colors.rose,
|
||||
active_border = colors.rose,
|
||||
active_text = colors.base,
|
||||
|
||||
-- active tab bar segment colors for bars on an unfocused monitor
|
||||
active_alt_monitor = colors.subtle,
|
||||
active_alt_monitor_border = colors.subtle,
|
||||
active_alt_monitor_text = colors.base,
|
||||
|
||||
-- focused tab bar segment colors (focused node in unfocused container)
|
||||
focused = colors.muted,
|
||||
focused_border = colors.muted,
|
||||
focused_text = colors.text,
|
||||
|
||||
-- inactive tab bar segment colors
|
||||
inactive = colors.surface,
|
||||
inactive_border = colors.overlay,
|
||||
inactive_text = colors.muted,
|
||||
|
||||
-- urgent tab bar segment colors
|
||||
urgent = colors.love,
|
||||
urgent_border = colors.love,
|
||||
urgent_text = colors.base,
|
||||
|
||||
-- locked tab bar segment colors
|
||||
locked = colors.gold,
|
||||
locked_border = colors.gold,
|
||||
locked_text = colors.base,
|
||||
},
|
||||
|
||||
-- if tab backgrounds should be blurred
|
||||
blur = false,
|
||||
|
||||
-- opacity multiplier for tabs
|
||||
opacity = 1.0,
|
||||
},
|
||||
|
||||
-- autotiling settings
|
||||
autotile = {
|
||||
enable = false,
|
||||
ephemeral_groups = true,
|
||||
trigger_width = 0,
|
||||
trigger_height = 0,
|
||||
workspaces = "all",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
|
||||
|
||||
-- Default springs
|
||||
|
||||
-- Ref https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
|
||||
-- "Smart gaps" / "No gaps when only"
|
||||
-- uncomment all if you wish to use that.
|
||||
-- hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 })
|
||||
-- hl.workspace_rule({ workspace = "f[1]", gaps_out = 0, gaps_in = 0 })
|
||||
-- hl.window_rule({
|
||||
-- name = "no-gaps-wtv1",
|
||||
-- match = { float = false, workspace = "w[tv1]" },
|
||||
-- border_size = 0,
|
||||
-- rounding = 0,
|
||||
-- })
|
||||
-- hl.window_rule({
|
||||
-- name = "no-gaps-f1",
|
||||
-- match = { float = false, workspace = "f[1]" },
|
||||
-- border_size = 0,
|
||||
-- rounding = 0,
|
||||
-- })
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
|
||||
hl.config({
|
||||
dwindle = {
|
||||
preserve_split = true, -- You probably want this
|
||||
},
|
||||
})
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Layouts/Master-Layout/ for more
|
||||
hl.config({
|
||||
master = {
|
||||
new_status = "master",
|
||||
},
|
||||
})
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Layouts/Scrolling-Layout/ for more
|
||||
hl.config({
|
||||
scrolling = {
|
||||
fullscreen_on_one_column = true,
|
||||
},
|
||||
})
|
||||
|
||||
----------------
|
||||
---- MISC ----
|
||||
----------------
|
||||
|
||||
hl.config({
|
||||
misc = {
|
||||
disable_hyprland_logo = true, -- If true disables the random hyprland logo / anime girl background. :(
|
||||
},
|
||||
})
|
||||
|
||||
---------------
|
||||
---- INPUT ----
|
||||
---------------
|
||||
|
||||
hl.config({
|
||||
input = {
|
||||
kb_layout = "us",
|
||||
kb_variant = "",
|
||||
kb_model = "",
|
||||
kb_options = "",
|
||||
kb_rules = "",
|
||||
|
||||
follow_mouse = 1,
|
||||
|
||||
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = false,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
hl.gesture({
|
||||
fingers = 3,
|
||||
direction = "horizontal",
|
||||
action = "workspace",
|
||||
})
|
||||
|
||||
-- Example per-device config
|
||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Devices/ for more
|
||||
hl.device({
|
||||
name = "epic-mouse-v1",
|
||||
sensitivity = -0.5,
|
||||
})
|
||||
|
||||
---------------------
|
||||
---- KEYBINDINGS ----
|
||||
---------------------
|
||||
|
||||
require("keybinds").setup({
|
||||
terminal = terminal,
|
||||
menu = menu,
|
||||
browser = browser,
|
||||
browserPrivate = browserPrivate,
|
||||
})
|
||||
|
||||
--------------------------------
|
||||
---- WINDOWS AND WORKSPACES ----
|
||||
--------------------------------
|
||||
|
||||
require("windowrules")
|
||||
221
hypr/keybinds.lua
Normal file
221
hypr/keybinds.lua
Normal file
@@ -0,0 +1,221 @@
|
||||
local M = {}
|
||||
|
||||
function M.setup(opts)
|
||||
local terminal = opts.terminal
|
||||
local menu = opts.menu
|
||||
local browser = opts.browser
|
||||
local browserPrivate = opts.browserPrivate
|
||||
|
||||
-- Import and setup hy3 plugin helper
|
||||
local hy3 = hl.plugin.hy3
|
||||
if not hy3 then
|
||||
hy3 = setmetatable({}, {
|
||||
__index = function(_, k)
|
||||
return function(...)
|
||||
return function()
|
||||
print("hy3 plugin is not loaded, cannot call " .. k)
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
-- Track and write split state to /tmp/hy3_split for status bars like Wayle
|
||||
local current_split = "H"
|
||||
local function set_split(dir)
|
||||
current_split = dir
|
||||
local f = io.open("/tmp/hy3_split", "w")
|
||||
if f then
|
||||
f:write(dir)
|
||||
f:close()
|
||||
end
|
||||
end
|
||||
set_split("H") -- Initialize
|
||||
|
||||
local mainMod = "SUPER" -- Sets "Windows" key as main modifier
|
||||
|
||||
-- Example binds, see https://wiki.hypr.land/Configuring/Basics/Binds/ for more
|
||||
hl.bind(mainMod .. " + Return", hl.dsp.exec_cmd(terminal))
|
||||
hl.bind(mainMod .. " + Q", hl.dsp.window.close())
|
||||
hl.bind(mainMod .. " + SHIFT + E", hl.dsp.exit())
|
||||
hl.bind(mainMod .. " + SHIFT + R", function()
|
||||
hl.exec_cmd("hyprctl reload && notify-send 'Hyprland config reloaded'")
|
||||
end)
|
||||
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(terminal .. " fish -c 'y; exec fish'"))
|
||||
hl.bind(mainMod .. " + SPACE", hl.dsp.window.float({ action = "toggle" }))
|
||||
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen())
|
||||
hl.bind(mainMod .. " + D", hl.dsp.exec_cmd(menu))
|
||||
hl.bind(mainMod .. " + B", hl.dsp.exec_cmd(browser))
|
||||
hl.bind(mainMod .. " + SHIFT + B", hl.dsp.exec_cmd(browserPrivate))
|
||||
hl.bind(mainMod .. " + P", hl.dsp.window.pseudo())
|
||||
-- hl.bind(mainMod .. " + S", hl.dsp.exec_cmd("hyprquickframe"))
|
||||
hl.bind(
|
||||
mainMod .. " + S",
|
||||
hl.dsp.exec_cmd(
|
||||
' grim -g "$(slurp)" - | satty -f - --copy-command wl-copy -o "~/Pictures/Screenshots/%Y%m%d_%H%M%S.png"'
|
||||
)
|
||||
)
|
||||
-- hl.bind(mainMod .. " + G", hl.dsp.exec_cmd("python /home/sortedcord/Projects/firecrawl-search/main.py"))
|
||||
|
||||
-- Move focus with mainMod + arrow keys (hy3 plugin aware)
|
||||
hl.bind(mainMod .. " + left", hy3.move_focus("left"))
|
||||
hl.bind(mainMod .. " + right", hy3.move_focus("right"))
|
||||
hl.bind(mainMod .. " + up", hy3.move_focus("up"))
|
||||
hl.bind(mainMod .. " + down", hy3.move_focus("down"))
|
||||
|
||||
-- Move focus with mainMod + hjkl (hy3 plugin aware)
|
||||
hl.bind(mainMod .. " + H", hy3.move_focus("l"))
|
||||
hl.bind(mainMod .. " + J", hy3.move_focus("d"))
|
||||
hl.bind(mainMod .. " + K", hy3.move_focus("u"))
|
||||
hl.bind(mainMod .. " + L", hy3.move_focus("r"))
|
||||
|
||||
hl.bind(mainMod .. " + W", hl.dsp.exec_cmd("rofi -show window"))
|
||||
|
||||
-- Move window with mainMod + SHIFT + hjkl (hy3 plugin aware)
|
||||
hl.bind(mainMod .. " + SHIFT + H", hy3.move_window("l"))
|
||||
hl.bind(mainMod .. " + SHIFT + J", hy3.move_window("d"))
|
||||
hl.bind(mainMod .. " + SHIFT + K", hy3.move_window("u"))
|
||||
hl.bind(mainMod .. " + SHIFT + L", hy3.move_window("r"))
|
||||
|
||||
-- i3-like container and layout controls
|
||||
-- Toggle layout tabbed
|
||||
hl.bind(mainMod .. " + SHIFT + T", function()
|
||||
hl.dispatch(hy3.change_group("toggletab"))
|
||||
if current_split == "T" then
|
||||
set_split("H")
|
||||
else
|
||||
set_split("T")
|
||||
end
|
||||
end)
|
||||
-- Split layout horizontal / vertical toggle
|
||||
hl.bind(mainMod .. " + SHIFT + G", function()
|
||||
hl.dispatch(hy3.change_group("opposite"))
|
||||
if current_split == "H" then
|
||||
set_split("V")
|
||||
elseif current_split == "V" then
|
||||
set_split("H")
|
||||
end
|
||||
end)
|
||||
-- Pre-split vertical (V), horizontal (C), or tab (X)
|
||||
hl.bind(mainMod .. " + V", function()
|
||||
hl.dispatch(hy3.make_group("v", { toggle = true }))
|
||||
set_split("V")
|
||||
end)
|
||||
hl.bind(mainMod .. " + C", function()
|
||||
hl.dispatch(hy3.make_group("h", { toggle = true }))
|
||||
set_split("H")
|
||||
end)
|
||||
hl.bind(mainMod .. " + X", function()
|
||||
hl.dispatch(hy3.make_group("tab", { toggle = true }))
|
||||
set_split("T")
|
||||
end)
|
||||
-- Focus parent (A) / focus child (SHIFT + A)
|
||||
hl.bind(mainMod .. " + A", hy3.change_focus("raise"))
|
||||
hl.bind(mainMod .. " + SHIFT + A", hy3.change_focus("lower"))
|
||||
-- Cycle tabs with Super + Alt + Left/Right
|
||||
hl.bind(mainMod .. " + ALT + left", hy3.focus_tab({ direction = "l", wrap = true }))
|
||||
hl.bind(mainMod .. " + ALT + right", hy3.focus_tab({ direction = "r", wrap = true }))
|
||||
|
||||
-- Switch workspaces with mainMod + [0-9]
|
||||
-- Move active window/container to a workspace with mainMod + SHIFT + [0-9] (hy3 plugin aware)
|
||||
for i = 1, 10 do
|
||||
local key = i % 10 -- 10 maps to key 0
|
||||
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i }))
|
||||
hl.bind(mainMod .. " + SHIFT + " .. key, hy3.move_to_workspace(tostring(i)))
|
||||
end
|
||||
|
||||
-- Move window to other monitor with mod+semicolon
|
||||
hl.bind(mainMod .. " + semicolon", hl.dsp.window.move({ monitor = "+1" }))
|
||||
|
||||
-- Swap windows between monitors (mod+shift+semicolon)
|
||||
-- Detect which monitor we're on and use the correct focus direction
|
||||
hl.bind(mainMod .. " + SHIFT + semicolon", function()
|
||||
local active_monitor = hl.get_active_monitor()
|
||||
local focus_direction = "r"
|
||||
|
||||
-- If we're on the rightmost monitor (HDMI-A-1), focus left instead
|
||||
if active_monitor.name == "HDMI-A-1" then
|
||||
focus_direction = "l"
|
||||
end
|
||||
|
||||
-- Move window to next monitor
|
||||
hl.dispatch(hl.dsp.window.move({ monitor = "+1" }))
|
||||
|
||||
-- Focus a window on the current monitor using the correct direction (hy3 plugin aware)
|
||||
hl.dispatch(hy3.move_focus(focus_direction))
|
||||
|
||||
-- Move the newly focused window back to original monitor
|
||||
hl.dispatch(hl.dsp.window.move({ monitor = "-1" }))
|
||||
end)
|
||||
|
||||
-- Example special workspace (scratchpad)
|
||||
-- hl.bind(mainMod .. " + S", hl.dsp.workspace.toggle_special("magic"))
|
||||
-- hl.bind(mainMod .. " + SHIFT + S", hl.dsp.window.move({ workspace = "special:magic" }))
|
||||
|
||||
-- Scroll through existing workspaces with mainMod + scroll
|
||||
-- hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
|
||||
-- hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
|
||||
hl.bind(mainMod .. " + Y", hl.dsp.focus({ workspace = "e+1" }))
|
||||
hl.bind(mainMod .. " + T", hl.dsp.focus({ workspace = "e-1" }))
|
||||
|
||||
-- Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||
|
||||
-- Laptop multimedia keys for volume and LCD brightness
|
||||
hl.bind(
|
||||
"XF86AudioRaiseVolume",
|
||||
hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind(
|
||||
"XF86AudioLowerVolume",
|
||||
hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind(
|
||||
"XF86AudioMute",
|
||||
hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind(
|
||||
"XF86AudioMicMute",
|
||||
hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"),
|
||||
{ locked = true, repeating = true }
|
||||
)
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
|
||||
|
||||
-- Requires playerctl
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
||||
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
|
||||
|
||||
-- Cursor controls (simplified - submaps not supported in Lua API)
|
||||
-- Jump cursor to a position
|
||||
hl.bind("SUPER + G + A", hl.dsp.exec_cmd("hyprctl dispatch submap reset && wl-kbptr && hyprctl dispatch submap cursor"))
|
||||
|
||||
-- Cursor movement
|
||||
hl.bind("SUPER + G + J", hl.dsp.exec_cmd("wlrctl pointer move 0 10"), { repeating = true })
|
||||
hl.bind("SUPER + G + K", hl.dsp.exec_cmd("wlrctl pointer move 0 -10"), { repeating = true })
|
||||
hl.bind("SUPER + G + L", hl.dsp.exec_cmd("wlrctl pointer move 10 0"), { repeating = true })
|
||||
hl.bind("SUPER + G + H", hl.dsp.exec_cmd("wlrctl pointer move -10 0"), { repeating = true })
|
||||
|
||||
-- Left button
|
||||
hl.bind("SUPER + G + S", hl.dsp.exec_cmd("wlrctl pointer click left"))
|
||||
-- Middle button
|
||||
hl.bind("SUPER + G + D", hl.dsp.exec_cmd("wlrctl pointer click middle"))
|
||||
-- Right button
|
||||
hl.bind("SUPER + G + F", hl.dsp.exec_cmd("wlrctl pointer click right"))
|
||||
|
||||
-- Scroll up and down
|
||||
hl.bind("SUPER + G + E", hl.dsp.exec_cmd("wlrctl pointer scroll 10 0"), { repeating = true })
|
||||
hl.bind("SUPER + G + R", hl.dsp.exec_cmd("wlrctl pointer scroll -10 0"), { repeating = true })
|
||||
|
||||
-- Scroll left and right
|
||||
hl.bind("SUPER + G + T", hl.dsp.exec_cmd("wlrctl pointer scroll 0 -10"), { repeating = true })
|
||||
hl.bind("SUPER + G + G", hl.dsp.exec_cmd("wlrctl pointer scroll 0 10"), { repeating = true })
|
||||
end
|
||||
|
||||
return M
|
||||
22
hypr/rose-pine.lua
Normal file
22
hypr/rose-pine.lua
Normal file
@@ -0,0 +1,22 @@
|
||||
-- name: Rosé Pine
|
||||
-- author: jishnurajendran
|
||||
-- upstream: https://github.com/jishnurajendran/hyprland-rosepine/blob/main/rose-pine.conf
|
||||
-- All natural pine, faux fur and a bit of soho vibes for the classy minimalist
|
||||
|
||||
return {
|
||||
base = 0xff191724,
|
||||
surface = 0xff1f1d2e,
|
||||
overlay = 0xff26233a,
|
||||
muted = 0xff6e6a86,
|
||||
subtle = 0xff908caa,
|
||||
text = 0xffe0def4,
|
||||
love = 0xffeb6f92,
|
||||
gold = 0xfff6c177,
|
||||
rose = 0xffebbcba,
|
||||
pine = 0xff31748f,
|
||||
foam = 0xff9ccfd8,
|
||||
iris = 0xffc4a7e7,
|
||||
highlightLow = 0xff21202e,
|
||||
highlightMed = 0xff403d52,
|
||||
highlightHigh = 0xff524f67,
|
||||
}
|
||||
90
hypr/windowrules.lua
Normal file
90
hypr/windowrules.lua
Normal file
@@ -0,0 +1,90 @@
|
||||
-- Workspace to monitor mapping
|
||||
for i = 1, 5 do
|
||||
hl.workspace_rule({ workspace = i, monitor = "DP-1" })
|
||||
end
|
||||
|
||||
for i = 6, 10 do
|
||||
hl.workspace_rule({ workspace = i, monitor = "HDMI-A-1" })
|
||||
end
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/
|
||||
-- and https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
|
||||
|
||||
-- Example window rules that are useful
|
||||
|
||||
local suppressMaximizeRule = hl.window_rule({
|
||||
-- Ignore maximize requests from all apps. You'll probably like this.
|
||||
name = "suppress-maximize-events",
|
||||
match = { class = ".*" },
|
||||
|
||||
suppress_event = "maximize",
|
||||
})
|
||||
-- suppressMaximizeRule:set_enabled(false)
|
||||
|
||||
hl.window_rule({
|
||||
-- Set Pegasus to fullscreen
|
||||
name = "pegasus-fullscreen",
|
||||
match = { class = "pegasus-frontend" },
|
||||
fullscreen = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
-- Always float Bitwarden
|
||||
name = "bitwarden-float",
|
||||
match = { title = "Bitwarden - Vivaldi" },
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
-- Always float Game Splash Screen
|
||||
name = "gsplash-float",
|
||||
match = { class = "gsplash" },
|
||||
float = true,
|
||||
content = "game",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
-- SCREENCHEAT fullscreen
|
||||
name = "screencheat-fullscreen",
|
||||
match = { title = "SCREENCHEAT" },
|
||||
fullscreen = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
-- Always float Satty
|
||||
name = "satty-float",
|
||||
match = { class = "com.gabm.satty" },
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
-- Fix some dragging issues with XWayland
|
||||
name = "fix-xwayland-drags",
|
||||
match = {
|
||||
class = "^$",
|
||||
title = "^$",
|
||||
xwayland = true,
|
||||
float = true,
|
||||
fullscreen = false,
|
||||
pin = false,
|
||||
},
|
||||
|
||||
no_focus = true,
|
||||
})
|
||||
|
||||
-- Layer rules also return a handle.
|
||||
-- local overlayLayerRule = hl.layer_rule({
|
||||
-- name = "no-anim-overlay",
|
||||
-- match = { namespace = "^my-overlay$" },
|
||||
-- no_anim = true,
|
||||
-- })
|
||||
-- overlayLayerRule:set_enabled(false)
|
||||
|
||||
-- Hyprland-run windowrule
|
||||
hl.window_rule({
|
||||
name = "move-hyprland-run",
|
||||
match = { class = "hyprland-run" },
|
||||
|
||||
move = "20 monitor_h-120",
|
||||
float = true,
|
||||
})
|
||||
199
hyprpanel/config.json
Normal file
199
hyprpanel/config.json
Normal file
@@ -0,0 +1,199 @@
|
||||
{
|
||||
"log_level": "LOG_LEVEL_INFO",
|
||||
"log_subprocesses_to_journal": false,
|
||||
"dbus": {
|
||||
"enabled": true,
|
||||
"connect_timeout": "20s",
|
||||
"connect_interval": "0.200s",
|
||||
"notifications": {
|
||||
"enabled": true
|
||||
},
|
||||
"systray": {
|
||||
"enabled": true
|
||||
},
|
||||
"shortcuts": {
|
||||
"enabled": true
|
||||
},
|
||||
"brightness": {
|
||||
"enabled": true,
|
||||
"adjust_step_percent": 5,
|
||||
"min_brightness": 1,
|
||||
"enable_logind": true,
|
||||
"hud_notifications": true
|
||||
},
|
||||
"power": {
|
||||
"enabled": true,
|
||||
"low_percent": 10,
|
||||
"critical_percent": 5,
|
||||
"low_command": "",
|
||||
"critical_command": "",
|
||||
"hud_notifications": true
|
||||
}
|
||||
},
|
||||
"audio": {
|
||||
"enabled": true,
|
||||
"volume_step_percent": 5,
|
||||
"volume_exceed_maximum": false,
|
||||
"hud_notifications": true
|
||||
},
|
||||
"panels": [
|
||||
{
|
||||
"id": "panel0",
|
||||
"edge": "EDGE_RIGHT",
|
||||
"size": 64,
|
||||
"monitor": "",
|
||||
"modules": [
|
||||
{
|
||||
"pager": {
|
||||
"icon_size": 12,
|
||||
"active_monitor_only": false,
|
||||
"scroll_wrap_workspaces": true,
|
||||
"scroll_include_inactive": true,
|
||||
"enable_workspace_names": false,
|
||||
"pinned": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6
|
||||
],
|
||||
"ignore_windows": [],
|
||||
"preview_width": 256,
|
||||
"follow_window_on_move": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"spacer": {
|
||||
"size": 16,
|
||||
"expand": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"taskbar": {
|
||||
"icon_size": 48,
|
||||
"active_workspace_only": true,
|
||||
"active_monitor_only": true,
|
||||
"group_tasks": true,
|
||||
"hide_indicators": false,
|
||||
"expand": true,
|
||||
"max_size": 0,
|
||||
"pinned": [],
|
||||
"preview_width": 256
|
||||
}
|
||||
},
|
||||
{
|
||||
"spacer": {
|
||||
"size": 16,
|
||||
"expand": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"systray": {
|
||||
"icon_size": 22,
|
||||
"menu_icon_size": 22,
|
||||
"auto_hide_statuses": [
|
||||
"STATUS_UNSPECIFIED",
|
||||
"STATUS_PASSIVE",
|
||||
"STATUS_ACTIVE"
|
||||
],
|
||||
"auto_hide_delay": "4s",
|
||||
"pinned": [
|
||||
"nm-applet",
|
||||
"chrome_status_icon_1"
|
||||
],
|
||||
"modules": [
|
||||
{
|
||||
"power": {
|
||||
"icon_size": 22,
|
||||
"icon_symbolic": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"notifications": {
|
||||
"icon_size": 24,
|
||||
"notification_icon_size": 48,
|
||||
"default_timeout": "7s",
|
||||
"position": "POSITION_TOP_RIGHT",
|
||||
"margin": 24,
|
||||
"persistent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"hud": {
|
||||
"notification_icon_size": 64,
|
||||
"timeout": "2s",
|
||||
"position": "POSITION_BOTTOM",
|
||||
"margin": 256
|
||||
}
|
||||
},
|
||||
{
|
||||
"spacer": {
|
||||
"size": 16,
|
||||
"expand": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"audio": {
|
||||
"icon_size": 32,
|
||||
"icon_symbolic": true,
|
||||
"command_mixer": "pavucontrol",
|
||||
"enable_source": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"spacer": {
|
||||
"size": 16,
|
||||
"expand": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"clock": {
|
||||
"time_format": "15:04",
|
||||
"date_format": "2006-01-02",
|
||||
"tooltip_time_format": "15:04",
|
||||
"tooltip_date_format": "Mon, 02 Jan 2006 MST",
|
||||
"additional_regions": [
|
||||
"America/Los_Angeles",
|
||||
"America/Chicago",
|
||||
"America/New_York",
|
||||
"Europe/London"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"spacer": {
|
||||
"size": 16,
|
||||
"expand": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"session": {
|
||||
"icon_size": 48,
|
||||
"icon_symbolic": true,
|
||||
"overlay_icon_size": 96,
|
||||
"overlay_icon_symbolic": true,
|
||||
"command_logout": "loginctl terminate-session $XDG_SESSION_ID",
|
||||
"command_reboot": "systemctl reboot",
|
||||
"command_suspend": "systemctl suspend",
|
||||
"command_shutdown": "systemctl poweroff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"spacer": {
|
||||
"size": 16,
|
||||
"expand": false
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"icon_overrides": [],
|
||||
"launch_wrapper": [
|
||||
"sh",
|
||||
"-c"
|
||||
]
|
||||
}
|
||||
3
hyprpaper/hyprpaper.conf
Normal file
3
hyprpaper/hyprpaper.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
preload = /home/sortedcord/Pictures/Wallpapers/cliff.jpg
|
||||
|
||||
wallpaper = DP-1,/home/sortedcord/Pictures/Wallpapers/cliff.jpg
|
||||
70
kitty/current-theme.conf
Normal file
70
kitty/current-theme.conf
Normal file
@@ -0,0 +1,70 @@
|
||||
# vim:ft=kitty
|
||||
## name: Everforest Light Medium
|
||||
## author: Sainnhe Park
|
||||
## license: MIT
|
||||
## upstream: https://github.com/ewal/kitty-everforest/blob/master/themes/everforest_light_medium.conf
|
||||
## blurb: A green based color scheme designed to be warm and soft
|
||||
|
||||
foreground #5c6a72
|
||||
background #fdf6e3
|
||||
selection_foreground #829181
|
||||
selection_background #eaedc8
|
||||
|
||||
cursor #5c6a72
|
||||
cursor_text_color #f4f0d9
|
||||
|
||||
url_color #3a94c5
|
||||
|
||||
active_border_color #8da101
|
||||
inactive_border_color #bdc3af
|
||||
bell_border_color #f57d26
|
||||
visual_bell_color none
|
||||
|
||||
wayland_titlebar_color system
|
||||
macos_titlebar_color system
|
||||
|
||||
active_tab_background #fdf6e3
|
||||
active_tab_foreground #5c6a72
|
||||
inactive_tab_background #fdf6e3
|
||||
inactive_tab_foreground #939f91
|
||||
tab_bar_background #fdf6e3
|
||||
tab_bar_margin_color none
|
||||
|
||||
mark1_foreground #fdf6e3
|
||||
mark1_background #3a94c5
|
||||
mark2_foreground #fdf6e3
|
||||
mark2_background #d3c6aa
|
||||
mark3_foreground #fdf6e3
|
||||
mark3_background #df69ba
|
||||
|
||||
#: black
|
||||
color0 #708089
|
||||
color8 #829181
|
||||
|
||||
#: red
|
||||
color1 #f85552
|
||||
color9 #e66868
|
||||
|
||||
#: green
|
||||
color2 #8da101
|
||||
color10 #93b259
|
||||
|
||||
#: yellow
|
||||
color3 #dfa000
|
||||
color11 #dfa000
|
||||
|
||||
#: blue
|
||||
color4 #3a94c5
|
||||
color12 #3a94c5
|
||||
|
||||
#: magenta
|
||||
color5 #df69ba
|
||||
color13 #df69ba
|
||||
|
||||
#: cyan
|
||||
color6 #35a77c
|
||||
color14 #35a77c
|
||||
|
||||
#: white
|
||||
color7 #939f91
|
||||
color15 #a6b0a0
|
||||
53
kitty/dark-theme.auto.conf
Normal file
53
kitty/dark-theme.auto.conf
Normal file
@@ -0,0 +1,53 @@
|
||||
## name: Rosé Pine
|
||||
## author: mvllow
|
||||
## license: MIT
|
||||
## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine.conf
|
||||
## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist
|
||||
|
||||
foreground #e0def4
|
||||
background #191724
|
||||
selection_foreground #e0def4
|
||||
selection_background #403d52
|
||||
|
||||
cursor #524f67
|
||||
cursor_text_color #e0def4
|
||||
|
||||
url_color #c4a7e7
|
||||
|
||||
active_tab_foreground #e0def4
|
||||
active_tab_background #26233a
|
||||
inactive_tab_foreground #6e6a86
|
||||
inactive_tab_background #191724
|
||||
|
||||
# black
|
||||
color0 #26233a
|
||||
color8 #6e6a86
|
||||
|
||||
# red
|
||||
color1 #eb6f92
|
||||
color9 #eb6f92
|
||||
|
||||
# green
|
||||
color2 #31748f
|
||||
color10 #31748f
|
||||
|
||||
# yellow
|
||||
color3 #f6c177
|
||||
color11 #f6c177
|
||||
|
||||
# blue
|
||||
color4 #9ccfd8
|
||||
color12 #9ccfd8
|
||||
|
||||
# magenta
|
||||
color5 #c4a7e7
|
||||
color13 #c4a7e7
|
||||
|
||||
# cyan
|
||||
color6 #ebbcba
|
||||
color14 #ebbcba
|
||||
|
||||
# white
|
||||
color7 #e0def4
|
||||
color15 #e0def4
|
||||
|
||||
17
kitty/kitty.conf
Normal file
17
kitty/kitty.conf
Normal file
@@ -0,0 +1,17 @@
|
||||
# vim:fileencoding=utf-8:foldmethod=marker
|
||||
|
||||
font_family FiraCode Nerd Font
|
||||
font_size 12
|
||||
|
||||
window_padding_width 5
|
||||
|
||||
background_opacity 0.96
|
||||
background_blur 0
|
||||
# BEGIN_KITTY_THEME
|
||||
# Everforest Light Medium
|
||||
include current-theme.conf
|
||||
# END_KITTY_THEME
|
||||
window_padding_width 8
|
||||
|
||||
allow_remote_control yes
|
||||
# hide_window_decorations yes
|
||||
17
kitty/kitty.conf.bak
Normal file
17
kitty/kitty.conf.bak
Normal file
@@ -0,0 +1,17 @@
|
||||
# vim:fileencoding=utf-8:foldmethod=marker
|
||||
|
||||
font_family FiraCode Nerd Font
|
||||
font_size 12
|
||||
|
||||
window_padding_width 5
|
||||
|
||||
background_opacity 0.96
|
||||
background_blur 0
|
||||
# BEGIN_KITTY_THEME
|
||||
# Afterglow
|
||||
include current-theme.conf
|
||||
# END_KITTY_THEME
|
||||
window_padding_width 8
|
||||
|
||||
allow_remote_control yes
|
||||
# hide_window_decorations yes
|
||||
103
kitty/light-theme.auto.conf
Normal file
103
kitty/light-theme.auto.conf
Normal file
@@ -0,0 +1,103 @@
|
||||
# vim:ft=kitty
|
||||
## name: Dawnfox
|
||||
## author: EdenEast
|
||||
## license: MIT
|
||||
## upstream: https://github.com/EdenEast/nightfox.nvim/blob/main/extra/dawnfox/kitty.conf
|
||||
## blurb: Dawnfox theme from the neovim colorscheme nightfox.nvim.
|
||||
|
||||
#: All the settings below are colors, which you can choose to modify, or use the
|
||||
#: defaults. You can also add non-color based settings if needed but note that
|
||||
#: these will not work with using kitty @ set-colors with this theme. For a
|
||||
#: reference on what these settings do see https://sw.kovidgoyal.net/kitty/conf/
|
||||
|
||||
#: The basic colors
|
||||
|
||||
foreground #575279
|
||||
background #faf4ed
|
||||
selection_foreground #575279
|
||||
selection_background #d0d8d8
|
||||
|
||||
|
||||
#: Cursor colors
|
||||
|
||||
cursor #575279
|
||||
cursor_text_color #faf4ed
|
||||
|
||||
|
||||
#: URL underline color when hovering with mouse
|
||||
|
||||
url_color #618774
|
||||
|
||||
|
||||
#: kitty window border colors and terminal bell colors
|
||||
|
||||
active_border_color #286983
|
||||
inactive_border_color #bdbfc9
|
||||
bell_border_color #d7827e
|
||||
# visual_bell_color none
|
||||
|
||||
|
||||
#: OS Window titlebar colors
|
||||
|
||||
# wayland_titlebar_color system
|
||||
# macos_titlebar_color system
|
||||
|
||||
|
||||
#: Tab bar colors
|
||||
|
||||
active_tab_foreground #ebe5df
|
||||
active_tab_background #286983
|
||||
inactive_tab_foreground #9893a5
|
||||
inactive_tab_background #d0d8d8
|
||||
# tab_bar_background none
|
||||
# tab_bar_margin_color none
|
||||
|
||||
|
||||
#: Colors for marks (marked text in the terminal)
|
||||
|
||||
# mark1_foreground black
|
||||
# mark1_background #98d3cb
|
||||
# mark2_foreground black
|
||||
# mark2_background #f2dcd3
|
||||
# mark3_foreground black
|
||||
# mark3_background #f274bc
|
||||
|
||||
|
||||
#: The basic 16 colors
|
||||
|
||||
#: black
|
||||
color0 #575279
|
||||
color8 #5f5695
|
||||
|
||||
#: red
|
||||
color1 #b4637a
|
||||
color9 #c26d85
|
||||
|
||||
#: green
|
||||
color2 #618774
|
||||
color10 #629f81
|
||||
|
||||
#: yellow
|
||||
color3 #ea9d34
|
||||
color11 #eea846
|
||||
|
||||
#: blue
|
||||
color4 #286983
|
||||
color12 #2d81a3
|
||||
|
||||
#: magenta
|
||||
color5 #907aa9
|
||||
color13 #9a80b9
|
||||
|
||||
#: cyan
|
||||
color6 #56949f
|
||||
color14 #5ca7b4
|
||||
|
||||
#: white
|
||||
color7 #e5e9f0
|
||||
color15 #e6ebf3
|
||||
|
||||
#: You can set the remaining 240 colors as color16 to color255.
|
||||
|
||||
color16 #d7827e
|
||||
color17 #d685af
|
||||
53
kitty/no-preference-theme.auto.conf
Normal file
53
kitty/no-preference-theme.auto.conf
Normal file
@@ -0,0 +1,53 @@
|
||||
## name: Rosé Pine
|
||||
## author: mvllow
|
||||
## license: MIT
|
||||
## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine.conf
|
||||
## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist
|
||||
|
||||
foreground #e0def4
|
||||
background #191724
|
||||
selection_foreground #e0def4
|
||||
selection_background #403d52
|
||||
|
||||
cursor #524f67
|
||||
cursor_text_color #e0def4
|
||||
|
||||
url_color #c4a7e7
|
||||
|
||||
active_tab_foreground #e0def4
|
||||
active_tab_background #26233a
|
||||
inactive_tab_foreground #6e6a86
|
||||
inactive_tab_background #191724
|
||||
|
||||
# black
|
||||
color0 #26233a
|
||||
color8 #6e6a86
|
||||
|
||||
# red
|
||||
color1 #eb6f92
|
||||
color9 #eb6f92
|
||||
|
||||
# green
|
||||
color2 #31748f
|
||||
color10 #31748f
|
||||
|
||||
# yellow
|
||||
color3 #f6c177
|
||||
color11 #f6c177
|
||||
|
||||
# blue
|
||||
color4 #9ccfd8
|
||||
color12 #9ccfd8
|
||||
|
||||
# magenta
|
||||
color5 #c4a7e7
|
||||
color13 #c4a7e7
|
||||
|
||||
# cyan
|
||||
color6 #ebbcba
|
||||
color14 #ebbcba
|
||||
|
||||
# white
|
||||
color7 #e0def4
|
||||
color15 #e0def4
|
||||
|
||||
21
wayle/config.toml
Normal file
21
wayle/config.toml
Normal file
@@ -0,0 +1,21 @@
|
||||
# Wayle configuration file
|
||||
|
||||
[[bar.layout]]
|
||||
monitor = "*"
|
||||
left = ["media", "custom-hy3-split","hyprland-workspaces"]
|
||||
center = ["clock"]
|
||||
right = ["custom-gpu-temp", "battery", "bluetooth", "network", "microphone", "volume"]
|
||||
|
||||
[[modules.custom]]
|
||||
id="gpu-temp"
|
||||
command = "nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader"
|
||||
interval-ms = 5000
|
||||
icon-name = "ld-thermometer-symbolic"
|
||||
format = "{{ output }}"
|
||||
|
||||
[[modules.custom]]
|
||||
id = "hy3-split"
|
||||
command = "cat /tmp/hy3_split 2>/dev/null || echo H"
|
||||
interval-ms = 250
|
||||
icon-name = "ld-layers-symbolic"
|
||||
format = "{{ output }}"
|
||||
7
wayle/config.toml.save
Normal file
7
wayle/config.toml.save
Normal file
@@ -0,0 +1,7 @@
|
||||
# Wayle configuration file
|
||||
|
||||
[[bar.layout]]
|
||||
monitor = "*"
|
||||
left = ["hyprland-workspaces"]
|
||||
center = ["clock"]
|
||||
right = ["battery", "bluetooth", "network", "microphone", "volume"]
|
||||
0
wayle/runtime.toml
Normal file
0
wayle/runtime.toml
Normal file
1
wayle/schema.json
Normal file
1
wayle/schema.json
Normal file
File diff suppressed because one or more lines are too long
61
wayle/themes/schema.json
Normal file
61
wayle/themes/schema.json
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "Palette",
|
||||
"description": "Ten-color palette for CSS generation.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"bg": {
|
||||
"description": "Base background color (darkest).",
|
||||
"type": "string"
|
||||
},
|
||||
"surface": {
|
||||
"description": "Card and sidebar background.",
|
||||
"type": "string"
|
||||
},
|
||||
"elevated": {
|
||||
"description": "Raised element background.",
|
||||
"type": "string"
|
||||
},
|
||||
"fg": {
|
||||
"description": "Primary text color.",
|
||||
"type": "string"
|
||||
},
|
||||
"fg_muted": {
|
||||
"description": "Secondary text color.",
|
||||
"type": "string"
|
||||
},
|
||||
"primary": {
|
||||
"description": "Accent color for interactive elements.",
|
||||
"type": "string"
|
||||
},
|
||||
"red": {
|
||||
"description": "Red palette color.",
|
||||
"type": "string"
|
||||
},
|
||||
"yellow": {
|
||||
"description": "Yellow palette color.",
|
||||
"type": "string"
|
||||
},
|
||||
"green": {
|
||||
"description": "Green palette color.",
|
||||
"type": "string"
|
||||
},
|
||||
"blue": {
|
||||
"description": "Blue palette color.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"bg",
|
||||
"surface",
|
||||
"elevated",
|
||||
"fg",
|
||||
"fg_muted",
|
||||
"primary",
|
||||
"red",
|
||||
"yellow",
|
||||
"green",
|
||||
"blue"
|
||||
],
|
||||
"$id": "wayle-theme-0.2.3"
|
||||
}
|
||||
10
wayle/tombi.toml
Normal file
10
wayle/tombi.toml
Normal file
@@ -0,0 +1,10 @@
|
||||
[schema]
|
||||
enabled = true
|
||||
|
||||
[[schemas]]
|
||||
path = "./schema.json"
|
||||
include = ["config.toml", "runtime.toml"]
|
||||
|
||||
[[schemas]]
|
||||
path = "./themes/schema.json"
|
||||
include = ["themes/*.toml"]
|
||||
56
wl-kbptr/config
Normal file
56
wl-kbptr/config
Normal file
@@ -0,0 +1,56 @@
|
||||
# wl-kbptr can be configured with a configuration file.
|
||||
# The file location can be passed with the -c parameter.
|
||||
# Othewise the `$XDG_CONFIG_HOME/wl-kbptr/config` file will
|
||||
# be loaded if it exits. Below is the default configuration.
|
||||
|
||||
[general]
|
||||
home_row_keys=
|
||||
modes=floating
|
||||
cancellation_status_code=0
|
||||
|
||||
[mode_tile]
|
||||
label_color=#fffd
|
||||
label_select_color=#fd0d
|
||||
unselectable_bg_color=#2226
|
||||
selectable_bg_color=#0304
|
||||
selectable_border_color=#040c
|
||||
label_font_family=sans-serif
|
||||
label_font_size=8 50% 100
|
||||
label_symbols=abcdefghijklmnopqrstuvwxyz
|
||||
|
||||
[mode_floating]
|
||||
source=detect
|
||||
label_color=#ffff
|
||||
label_select_color=#fd0d
|
||||
unselectable_bg_color=#2226
|
||||
selectable_bg_color=#1718
|
||||
selectable_border_color=#040c
|
||||
label_font_family=sans-serif
|
||||
label_font_size=14 50% 100
|
||||
label_symbols=asdfghjklweruio
|
||||
|
||||
[mode_bisect]
|
||||
label_color=#fffd
|
||||
label_font_size=20
|
||||
label_font_family=sans-serif
|
||||
label_padding=12
|
||||
pointer_size=20
|
||||
pointer_color=#e22d
|
||||
unselectable_bg_color=#2226
|
||||
even_area_bg_color=#0304
|
||||
even_area_border_color=#0408
|
||||
odd_area_bg_color=#0034
|
||||
odd_area_border_color=#0048
|
||||
history_border_color=#3339
|
||||
|
||||
[mode_split]
|
||||
pointer_size=20
|
||||
pointer_color=#e22d
|
||||
bg_color=#2226
|
||||
area_bg_color=#11111188
|
||||
vertical_color=#8888ffcc
|
||||
horizontal_color=#008800cc
|
||||
history_border_color=#3339
|
||||
|
||||
[mode_click]
|
||||
button=left
|
||||
Reference in New Issue
Block a user