Compare commits
2 Commits
8996455e4f
...
2082904cd1
| Author | SHA1 | Date | |
|---|---|---|---|
| 2082904cd1 | |||
| fc69fc8cd9 |
2
apply.sh
2
apply.sh
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
stow -t ~ zsh tmux nvim hypr waybar alacritty
|
stow -t ~ bash zsh tmux nvim hypr waybar alacritty rider-palette walker
|
||||||
|
|||||||
118
bash/.bashrc
Normal file
118
bash/.bashrc
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||||
|
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||||
|
# for examples
|
||||||
|
|
||||||
|
# If not running interactively, don't do anything
|
||||||
|
case $- in
|
||||||
|
*i*) ;;
|
||||||
|
*) return;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# don't put duplicate lines or lines starting with space in the history.
|
||||||
|
# See bash(1) for more options
|
||||||
|
HISTCONTROL=ignoreboth
|
||||||
|
|
||||||
|
# append to the history file, don't overwrite it
|
||||||
|
shopt -s histappend
|
||||||
|
|
||||||
|
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||||
|
HISTSIZE=1000
|
||||||
|
HISTFILESIZE=2000
|
||||||
|
|
||||||
|
# check the window size after each command and, if necessary,
|
||||||
|
# update the values of LINES and COLUMNS.
|
||||||
|
shopt -s checkwinsize
|
||||||
|
|
||||||
|
# If set, the pattern "**" used in a pathname expansion context will
|
||||||
|
# match all files and zero or more directories and subdirectories.
|
||||||
|
#shopt -s globstar
|
||||||
|
|
||||||
|
# make less more friendly for non-text input files, see lesspipe(1)
|
||||||
|
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||||
|
|
||||||
|
# set variable identifying the chroot you work in (used in the prompt below)
|
||||||
|
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
||||||
|
debian_chroot=$(cat /etc/debian_chroot)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||||
|
case "$TERM" in
|
||||||
|
xterm-color|*-256color) color_prompt=yes;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||||
|
# off by default to not distract the user: the focus in a terminal window
|
||||||
|
# should be on the output of commands, not on the prompt
|
||||||
|
#force_color_prompt=yes
|
||||||
|
|
||||||
|
if [ -n "$force_color_prompt" ]; then
|
||||||
|
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||||
|
# We have color support; assume it's compliant with Ecma-48
|
||||||
|
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||||
|
# a case would tend to support setf rather than setaf.)
|
||||||
|
color_prompt=yes
|
||||||
|
else
|
||||||
|
color_prompt=
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$color_prompt" = yes ]; then
|
||||||
|
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
||||||
|
else
|
||||||
|
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||||
|
fi
|
||||||
|
unset color_prompt force_color_prompt
|
||||||
|
|
||||||
|
# If this is an xterm set the title to user@host:dir
|
||||||
|
case "$TERM" in
|
||||||
|
xterm*|rxvt*)
|
||||||
|
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# enable color support of ls and also add handy aliases
|
||||||
|
if [ -x /usr/bin/dircolors ]; then
|
||||||
|
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
#alias dir='dir --color=auto'
|
||||||
|
#alias vdir='vdir --color=auto'
|
||||||
|
|
||||||
|
#alias grep='grep --color=auto'
|
||||||
|
#alias fgrep='fgrep --color=auto'
|
||||||
|
#alias egrep='egrep --color=auto'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# colored GCC warnings and errors
|
||||||
|
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
||||||
|
|
||||||
|
# some more ls aliases
|
||||||
|
#alias ll='ls -l'
|
||||||
|
#alias la='ls -A'
|
||||||
|
#alias l='ls -CF'
|
||||||
|
|
||||||
|
# Alias definitions.
|
||||||
|
# You may want to put all your additions into a separate file like
|
||||||
|
# ~/.bash_aliases, instead of adding them here directly.
|
||||||
|
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||||
|
|
||||||
|
if [ -f ~/.bash_aliases ]; then
|
||||||
|
. ~/.bash_aliases
|
||||||
|
fi
|
||||||
|
|
||||||
|
# enable programmable completion features (you don't need to enable
|
||||||
|
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||||
|
# sources /etc/bash.bashrc).
|
||||||
|
if ! shopt -oq posix; then
|
||||||
|
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||||
|
. /usr/share/bash-completion/bash_completion
|
||||||
|
elif [ -f /etc/bash_completion ]; then
|
||||||
|
. /etc/bash_completion
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Shared Rider palette prompt
|
||||||
|
if [ -r ~/.config/rider-palette/bash-prompt.sh ]; then
|
||||||
|
. ~/.config/rider-palette/bash-prompt.sh
|
||||||
|
fi
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
# You can split this configuration into multiple files
|
# You can split this configuration into multiple files
|
||||||
# Create your files separately and then link them to this file like this:
|
# Create your files separately and then link them to this file like this:
|
||||||
# source = ~/.config/hypr/myColors.conf
|
# source = ~/.config/hypr/myColors.conf
|
||||||
|
source = ~/.config/rider-palette/palette.hyprland.conf
|
||||||
|
|
||||||
|
|
||||||
################
|
################
|
||||||
@@ -36,7 +37,7 @@ monitor=DP-3,1920x1080@60, 3440x1200,1
|
|||||||
$terminal = alacritty
|
$terminal = alacritty
|
||||||
$fileManager = thunar
|
$fileManager = thunar
|
||||||
$navigator = firefox
|
$navigator = firefox
|
||||||
$menu = wofi --show drun
|
$menu = walker
|
||||||
|
|
||||||
|
|
||||||
#################
|
#################
|
||||||
@@ -49,6 +50,7 @@ $menu = wofi --show drun
|
|||||||
# exec-once = $terminal
|
# exec-once = $terminal
|
||||||
# exec-once = nm-applet &
|
# exec-once = nm-applet &
|
||||||
exec-once = waybar & hyprpaper & mako & hypridle
|
exec-once = waybar & hyprpaper & mako & hypridle
|
||||||
|
exec-once = walker --gapplication-service
|
||||||
|
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
@@ -78,8 +80,8 @@ general {
|
|||||||
border_size = 1
|
border_size = 1
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||||
col.active_border = rgba(33ccffff)
|
col.active_border = $func
|
||||||
col.inactive_border = rgba(595959ff)
|
col.inactive_border = $border
|
||||||
|
|
||||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||||
resize_on_border = false
|
resize_on_border = false
|
||||||
@@ -192,6 +194,7 @@ bind = $mainMod, E, exec, $fileManager bind = $mainMod, N, exec, $navigator
|
|||||||
bind = $mainMod, V, togglefloating
|
bind = $mainMod, V, togglefloating
|
||||||
bind = $mainMod, F, fullscreen
|
bind = $mainMod, F, fullscreen
|
||||||
bind = $mainMod, R, exec, $menu
|
bind = $mainMod, R, exec, $menu
|
||||||
|
bind = $mainMod ALT, SPACE, exec, $menu
|
||||||
bind = $mainMod, P, pseudo, # dwindle
|
bind = $mainMod, P, pseudo, # dwindle
|
||||||
bind = $mainMod, S, togglesplit, # dwindle
|
bind = $mainMod, S, togglesplit, # dwindle
|
||||||
bind = $mainMod, Q, exec, hyprlock
|
bind = $mainMod, Q, exec, hyprlock
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
source = $HOME/.config/hypr/mocha.conf
|
source = ~/.config/rider-palette/palette.hyprland.conf
|
||||||
|
|
||||||
$accent = $mauve
|
$accent = $func
|
||||||
$accentAlpha = $mauveAlpha
|
$accentAlpha = $funcAlpha
|
||||||
$font = JetBrainsMono Nerd Font
|
$font = JetBrainsMono Nerd Font
|
||||||
|
|
||||||
# GENERAL
|
# GENERAL
|
||||||
@@ -14,14 +14,14 @@ background {
|
|||||||
monitor =
|
monitor =
|
||||||
path = $HOME/.config/hypr/hyprlock-background.png
|
path = $HOME/.config/hypr/hyprlock-background.png
|
||||||
blur_passes = 0
|
blur_passes = 0
|
||||||
color = $base
|
color = $bg
|
||||||
}
|
}
|
||||||
|
|
||||||
# LAYOUT
|
# LAYOUT
|
||||||
label {
|
label {
|
||||||
monitor =
|
monitor =
|
||||||
text = Layout: $LAYOUT
|
text = Layout: $LAYOUT
|
||||||
color = $text
|
color = $fg_bright
|
||||||
font_size = 25
|
font_size = 25
|
||||||
font_family = $font
|
font_family = $font
|
||||||
position = 30, -30
|
position = 30, -30
|
||||||
@@ -33,7 +33,7 @@ label {
|
|||||||
label {
|
label {
|
||||||
monitor =
|
monitor =
|
||||||
text = $TIME
|
text = $TIME
|
||||||
color = $text
|
color = $fg_bright
|
||||||
font_size = 90
|
font_size = 90
|
||||||
font_family = $font
|
font_family = $font
|
||||||
position = -30, 0
|
position = -30, 0
|
||||||
@@ -45,7 +45,7 @@ label {
|
|||||||
label {
|
label {
|
||||||
monitor =
|
monitor =
|
||||||
text = cmd[update:43200000] date +"%A, %d %B %Y"
|
text = cmd[update:43200000] date +"%A, %d %B %Y"
|
||||||
color = $text
|
color = $fg_bright
|
||||||
font_size = 25
|
font_size = 25
|
||||||
font_family = $font
|
font_family = $font
|
||||||
position = -30, -150
|
position = -30, -150
|
||||||
@@ -57,7 +57,7 @@ label {
|
|||||||
{
|
{
|
||||||
monitor = "";
|
monitor = "";
|
||||||
text = "$FPRINTPROMPT";
|
text = "$FPRINTPROMPT";
|
||||||
color = "$text";
|
color = "$fg_bright";
|
||||||
font_size = 14;
|
font_size = 14;
|
||||||
font_family = font;
|
font_family = font;
|
||||||
position = "0, -107";
|
position = "0, -107";
|
||||||
@@ -85,15 +85,15 @@ input-field {
|
|||||||
dots_spacing = 0.2
|
dots_spacing = 0.2
|
||||||
dots_center = true
|
dots_center = true
|
||||||
outer_color = $accent
|
outer_color = $accent
|
||||||
inner_color = $surface0
|
inner_color = $cursor_line
|
||||||
font_color = $text
|
font_color = $fg_bright
|
||||||
fade_on_empty = false
|
fade_on_empty = false
|
||||||
placeholder_text = <span foreground="##$textAlpha"><i> Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
|
placeholder_text = <span foreground="##$fgBrightAlpha"><i> Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
|
||||||
hide_input = false
|
hide_input = false
|
||||||
check_color = $accent
|
check_color = $accent
|
||||||
fail_color = $red
|
fail_color = $error
|
||||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
||||||
capslock_color = $yellow
|
capslock_color = $string
|
||||||
position = 0, -47
|
position = 0, -47
|
||||||
halign = center
|
halign = center
|
||||||
valign = center
|
valign = center
|
||||||
|
|||||||
@@ -172,6 +172,12 @@ vim.o.scrolloff = 10
|
|||||||
-- See `:help 'confirm'`
|
-- See `:help 'confirm'`
|
||||||
vim.o.confirm = true
|
vim.o.confirm = true
|
||||||
|
|
||||||
|
-- Folding via treesitter
|
||||||
|
vim.o.foldmethod = 'expr'
|
||||||
|
vim.o.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
|
||||||
|
vim.o.foldlevel = 99
|
||||||
|
vim.o.foldlevelstart = 99
|
||||||
|
|
||||||
-- [[ Basic Keymaps ]]
|
-- [[ Basic Keymaps ]]
|
||||||
-- See `:help vim.keymap.set()`
|
-- See `:help vim.keymap.set()`
|
||||||
|
|
||||||
@@ -216,6 +222,18 @@ vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper win
|
|||||||
|
|
||||||
-- [[ Basic Autocommands ]]
|
-- [[ Basic Autocommands ]]
|
||||||
-- See `:help lua-guide-autocommands`
|
-- See `:help lua-guide-autocommands`
|
||||||
|
vim.opt.autoread = true
|
||||||
|
vim.opt.updatetime = 200
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ 'FocusGained', 'BufEnter', 'CursorHold', 'CursorHoldI' }, {
|
||||||
|
command = 'checktime',
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd('FileChangedShellPost', {
|
||||||
|
callback = function()
|
||||||
|
vim.notify 'File changed on disk. Buffer reloaded.'
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
-- Highlight when yanking (copying) text
|
-- Highlight when yanking (copying) text
|
||||||
-- Try it with `yap` in normal mode
|
-- Try it with `yap` in normal mode
|
||||||
@@ -491,7 +509,15 @@ require('lazy').setup({
|
|||||||
-- Automatically install LSPs and related tools to stdpath for Neovim
|
-- Automatically install LSPs and related tools to stdpath for Neovim
|
||||||
-- Mason must be loaded before its dependents so we need to set it up here.
|
-- Mason must be loaded before its dependents so we need to set it up here.
|
||||||
-- NOTE: `opts = {}` is the same as calling `require('mason').setup({})`
|
-- NOTE: `opts = {}` is the same as calling `require('mason').setup({})`
|
||||||
{ 'mason-org/mason.nvim', opts = {} },
|
{
|
||||||
|
'mason-org/mason.nvim',
|
||||||
|
opts = {
|
||||||
|
registries = {
|
||||||
|
'github:mason-org/mason-registry',
|
||||||
|
'github:Crashdummyy/mason-registry',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
'mason-org/mason-lspconfig.nvim',
|
'mason-org/mason-lspconfig.nvim',
|
||||||
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
||||||
|
|
||||||
@@ -895,8 +921,12 @@ require('lazy').setup({
|
|||||||
'folke/tokyonight.nvim',
|
'folke/tokyonight.nvim',
|
||||||
priority = 1000, -- Make sure to load this before all the other start plugins.
|
priority = 1000, -- Make sure to load this before all the other start plugins.
|
||||||
config = function()
|
config = function()
|
||||||
|
local rider_black = require 'custom.rider_black'
|
||||||
|
|
||||||
---@diagnostic disable-next-line: missing-fields
|
---@diagnostic disable-next-line: missing-fields
|
||||||
require('tokyonight').setup {
|
require('tokyonight').setup {
|
||||||
|
on_colors = rider_black.on_colors,
|
||||||
|
on_highlights = rider_black.on_highlights,
|
||||||
styles = {
|
styles = {
|
||||||
comments = { italic = false }, -- Disable italics in comments
|
comments = { italic = false }, -- Disable italics in comments
|
||||||
},
|
},
|
||||||
@@ -955,7 +985,7 @@ require('lazy').setup({
|
|||||||
main = 'nvim-treesitter', -- Current releases expose `setup()` from the top-level module
|
main = 'nvim-treesitter', -- Current releases expose `setup()` from the top-level module
|
||||||
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
||||||
opts = {
|
opts = {
|
||||||
ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' },
|
ensure_installed = { 'bash', 'c', 'c_sharp', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' },
|
||||||
-- Autoinstall languages that are not installed
|
-- Autoinstall languages that are not installed
|
||||||
auto_install = true,
|
auto_install = true,
|
||||||
highlight = {
|
highlight = {
|
||||||
@@ -991,6 +1021,12 @@ require('lazy').setup({
|
|||||||
require 'kickstart.plugins.neo-tree',
|
require 'kickstart.plugins.neo-tree',
|
||||||
require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
||||||
|
|
||||||
|
{ -- C# / .NET LSP via Roslyn
|
||||||
|
'seblyng/roslyn.nvim',
|
||||||
|
ft = 'cs',
|
||||||
|
opts = {},
|
||||||
|
},
|
||||||
|
|
||||||
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
|
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
|
||||||
-- This is the easiest way to modularize your config.
|
-- This is the easiest way to modularize your config.
|
||||||
--
|
--
|
||||||
|
|||||||
278
nvim/.config/nvim/lua/custom/rider_black.lua
Normal file
278
nvim/.config/nvim/lua/custom/rider_black.lua
Normal file
@@ -0,0 +1,278 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
local fallback_palette = {
|
||||||
|
bg = '#262626',
|
||||||
|
gutter = '#282828',
|
||||||
|
cursor_line = '#202424',
|
||||||
|
selection = '#08335E',
|
||||||
|
border = '#404040',
|
||||||
|
fg = '#BDBDBD',
|
||||||
|
fg_bright = '#F0F0F0',
|
||||||
|
fg_gutter = '#808080',
|
||||||
|
comment = '#85C46C',
|
||||||
|
keyword = '#6C95EB',
|
||||||
|
type = '#C191FF',
|
||||||
|
type_alt = '#E1BFFF',
|
||||||
|
func = '#39CC9B',
|
||||||
|
field = '#66C3CC',
|
||||||
|
string = '#C9A26D',
|
||||||
|
number = '#ED94C0',
|
||||||
|
escape = '#D688D4',
|
||||||
|
error = '#FF5647',
|
||||||
|
}
|
||||||
|
|
||||||
|
local function load_palette()
|
||||||
|
local palette_file = vim.fn.expand '~/.config/rider-palette/palette.json'
|
||||||
|
if vim.fn.filereadable(palette_file) == 0 then
|
||||||
|
return fallback_palette
|
||||||
|
end
|
||||||
|
|
||||||
|
local ok, data = pcall(vim.json.decode, table.concat(vim.fn.readfile(palette_file), '\n'))
|
||||||
|
if not ok or type(data) ~= 'table' or type(data.colors) ~= 'table' then
|
||||||
|
return fallback_palette
|
||||||
|
end
|
||||||
|
|
||||||
|
return vim.tbl_extend('force', fallback_palette, data.colors)
|
||||||
|
end
|
||||||
|
|
||||||
|
local palette = load_palette()
|
||||||
|
|
||||||
|
M.palette = palette
|
||||||
|
|
||||||
|
function M.on_colors(colors)
|
||||||
|
colors.bg = palette.bg
|
||||||
|
colors.bg_dark = palette.gutter
|
||||||
|
colors.bg_float = palette.bg
|
||||||
|
colors.bg_popup = palette.bg
|
||||||
|
colors.bg_sidebar = palette.gutter
|
||||||
|
colors.bg_statusline = palette.gutter
|
||||||
|
colors.bg_highlight = palette.cursor_line
|
||||||
|
colors.bg_search = palette.selection
|
||||||
|
colors.bg_visual = palette.selection
|
||||||
|
colors.border = palette.border
|
||||||
|
colors.fg = palette.fg
|
||||||
|
colors.fg_dark = palette.fg_gutter
|
||||||
|
colors.fg_float = palette.fg
|
||||||
|
colors.fg_gutter = palette.fg_gutter
|
||||||
|
colors.comment = palette.comment
|
||||||
|
colors.blue = palette.keyword
|
||||||
|
colors.cyan = palette.field
|
||||||
|
colors.green = palette.func
|
||||||
|
colors.magenta = palette.type
|
||||||
|
colors.orange = palette.string
|
||||||
|
colors.purple = palette.type
|
||||||
|
colors.red = palette.error
|
||||||
|
colors.teal = palette.func
|
||||||
|
colors.yellow = palette.string
|
||||||
|
colors.terminal_black = palette.gutter
|
||||||
|
end
|
||||||
|
|
||||||
|
local function set_many(hl, groups, spec)
|
||||||
|
for _, group in ipairs(groups) do
|
||||||
|
hl[group] = spec
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.on_highlights(hl)
|
||||||
|
set_many(hl, {
|
||||||
|
'Normal',
|
||||||
|
'NormalNC',
|
||||||
|
'SignColumn',
|
||||||
|
'FoldColumn',
|
||||||
|
}, { fg = palette.fg, bg = palette.bg })
|
||||||
|
|
||||||
|
hl.EndOfBuffer = { fg = palette.bg, bg = palette.bg }
|
||||||
|
hl.NormalFloat = { fg = palette.fg, bg = palette.bg }
|
||||||
|
hl.FloatBorder = { fg = palette.border, bg = palette.bg }
|
||||||
|
hl.CursorLine = { bg = palette.cursor_line }
|
||||||
|
hl.CursorLineNr = { fg = palette.fg_bright, bg = palette.cursor_line, bold = true }
|
||||||
|
hl.LineNr = { fg = palette.fg_gutter, bg = palette.gutter }
|
||||||
|
hl.Folded = { fg = palette.fg_gutter, bg = palette.bg }
|
||||||
|
hl.FoldColumn = { fg = palette.fg_gutter, bg = palette.bg }
|
||||||
|
hl.ColorColumn = { bg = palette.cursor_line }
|
||||||
|
hl.Visual = { bg = palette.selection }
|
||||||
|
hl.Search = { bg = palette.selection, fg = palette.fg_bright }
|
||||||
|
hl.IncSearch = { bg = palette.keyword, fg = palette.bg }
|
||||||
|
hl.Pmenu = { fg = palette.fg, bg = palette.bg }
|
||||||
|
hl.PmenuSel = { fg = palette.fg_bright, bg = palette.cursor_line }
|
||||||
|
hl.WinSeparator = { fg = palette.border }
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'Comment',
|
||||||
|
'@comment',
|
||||||
|
'@comment.documentation',
|
||||||
|
'@comment.todo',
|
||||||
|
'@comment.note',
|
||||||
|
'@comment.warning',
|
||||||
|
}, { fg = palette.comment, italic = false })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'Keyword',
|
||||||
|
'Conditional',
|
||||||
|
'Repeat',
|
||||||
|
'Exception',
|
||||||
|
'Include',
|
||||||
|
'PreProc',
|
||||||
|
'@keyword',
|
||||||
|
'@keyword.function',
|
||||||
|
'@keyword.return',
|
||||||
|
'@keyword.repeat',
|
||||||
|
'@keyword.conditional',
|
||||||
|
'@keyword.exception',
|
||||||
|
'@keyword.import',
|
||||||
|
'@keyword.directive',
|
||||||
|
'@keyword.operator',
|
||||||
|
'@conditional',
|
||||||
|
'@repeat',
|
||||||
|
'@exception',
|
||||||
|
'@include',
|
||||||
|
'@module',
|
||||||
|
'@namespace',
|
||||||
|
}, { fg = palette.keyword })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'Type',
|
||||||
|
'StorageClass',
|
||||||
|
'Structure',
|
||||||
|
'Typedef',
|
||||||
|
'@type',
|
||||||
|
'@type.builtin',
|
||||||
|
'@type.definition',
|
||||||
|
'@type.qualifier',
|
||||||
|
'@module',
|
||||||
|
'@namespace',
|
||||||
|
'@attribute',
|
||||||
|
'@tag.attribute',
|
||||||
|
'@lsp.type.type',
|
||||||
|
'@lsp.type.class',
|
||||||
|
'@lsp.type.interface',
|
||||||
|
'@lsp.type.namespace',
|
||||||
|
'@lsp.type.typeParameter',
|
||||||
|
}, { fg = palette.type })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'@constructor',
|
||||||
|
'@lsp.type.enum',
|
||||||
|
'@lsp.type.struct',
|
||||||
|
}, { fg = palette.type_alt })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'Function',
|
||||||
|
'@function',
|
||||||
|
'@function.call',
|
||||||
|
'@function.method',
|
||||||
|
'@function.method.call',
|
||||||
|
'@method',
|
||||||
|
'@constructor.lua',
|
||||||
|
'@lsp.type.function',
|
||||||
|
'@lsp.type.method',
|
||||||
|
}, { fg = palette.func })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'Identifier',
|
||||||
|
'@variable',
|
||||||
|
'@variable.member',
|
||||||
|
'@lsp.type.variable',
|
||||||
|
}, { fg = palette.fg_bright })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'Constant',
|
||||||
|
'@constant',
|
||||||
|
'@field',
|
||||||
|
'@property',
|
||||||
|
'@lsp.type.property',
|
||||||
|
'@lsp.type.enumMember',
|
||||||
|
}, { fg = palette.field })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'String',
|
||||||
|
'Character',
|
||||||
|
'@string',
|
||||||
|
'@string.documentation',
|
||||||
|
'@string.regex',
|
||||||
|
'@string.special.url',
|
||||||
|
'@lsp.type.string',
|
||||||
|
}, { fg = palette.string })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'SpecialChar',
|
||||||
|
'@string.escape',
|
||||||
|
'@string.special',
|
||||||
|
}, { fg = palette.escape })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'Number',
|
||||||
|
'Float',
|
||||||
|
'@number',
|
||||||
|
'@number.float',
|
||||||
|
'@lsp.type.number',
|
||||||
|
}, { fg = palette.number })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'Boolean',
|
||||||
|
'@boolean',
|
||||||
|
'@constant.builtin.boolean',
|
||||||
|
}, { fg = palette.keyword })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'@parameter',
|
||||||
|
'@lsp.type.parameter',
|
||||||
|
}, { fg = palette.fg_bright })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'@variable.builtin',
|
||||||
|
'@constant.builtin',
|
||||||
|
'@function.builtin',
|
||||||
|
}, { fg = palette.fg_bright })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'@lsp.typemod.function.defaultLibrary',
|
||||||
|
'@lsp.typemod.function.defaultLibrary.cs',
|
||||||
|
'@lsp.typemod.method.defaultLibrary',
|
||||||
|
'@lsp.typemod.method.defaultLibrary.cs',
|
||||||
|
'@lsp.type.extensionMethod',
|
||||||
|
'@lsp.type.extensionMethod.cs',
|
||||||
|
'@lsp.typemod.extensionMethod.defaultLibrary',
|
||||||
|
'@lsp.typemod.extensionMethod.defaultLibrary.cs',
|
||||||
|
}, { fg = palette.func })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'@lsp.typemod.class.defaultLibrary',
|
||||||
|
'@lsp.typemod.class.defaultLibrary.cs',
|
||||||
|
'@lsp.typemod.interface.defaultLibrary',
|
||||||
|
'@lsp.typemod.interface.defaultLibrary.cs',
|
||||||
|
'@lsp.typemod.enum.defaultLibrary',
|
||||||
|
'@lsp.typemod.enum.defaultLibrary.cs',
|
||||||
|
'@lsp.typemod.type.defaultLibrary',
|
||||||
|
'@lsp.typemod.type.defaultLibrary.cs',
|
||||||
|
'@lsp.typemod.typeParameter.defaultLibrary',
|
||||||
|
'@lsp.typemod.typeParameter.defaultLibrary.cs',
|
||||||
|
'@lsp.typemod.namespace.defaultLibrary',
|
||||||
|
'@lsp.typemod.namespace.defaultLibrary.cs',
|
||||||
|
}, { fg = palette.type })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'@lsp.typemod.struct.defaultLibrary',
|
||||||
|
'@lsp.typemod.struct.defaultLibrary.cs',
|
||||||
|
}, { fg = palette.type_alt })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'@lsp.typemod.property.defaultLibrary',
|
||||||
|
'@lsp.typemod.property.defaultLibrary.cs',
|
||||||
|
'@lsp.typemod.variable.defaultLibrary',
|
||||||
|
'@lsp.typemod.variable.defaultLibrary.cs',
|
||||||
|
'@lsp.typemod.enumMember.defaultLibrary',
|
||||||
|
'@lsp.typemod.enumMember.defaultLibrary.cs',
|
||||||
|
}, { fg = palette.field })
|
||||||
|
|
||||||
|
set_many(hl, {
|
||||||
|
'Operator',
|
||||||
|
'Delimiter',
|
||||||
|
'@operator',
|
||||||
|
'@punctuation.delimiter',
|
||||||
|
'@punctuation.bracket',
|
||||||
|
'@punctuation.special',
|
||||||
|
}, { fg = palette.fg })
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
1
rider-palette/.config/rider-palette/.gitignore
vendored
Normal file
1
rider-palette/.config/rider-palette/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
__pycache__/
|
||||||
22
rider-palette/.config/rider-palette/README.md
Normal file
22
rider-palette/.config/rider-palette/README.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Rider Palette Reuse
|
||||||
|
|
||||||
|
`palette.json` is the single source of truth for your shared Rider palette.
|
||||||
|
|
||||||
|
Regenerate all derived files with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 ~/.config/rider-palette/generate.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Generated outputs:
|
||||||
|
|
||||||
|
- `palette.sh`: shell env vars for prompts and scripts
|
||||||
|
- `palette.css`: CSS variables for Waybar and Wofi
|
||||||
|
- `palette.hyprland.conf`: Hyprlang variables for Hyprland and Hyprlock
|
||||||
|
- `palette.rasi`: Rasi variables for Rofi
|
||||||
|
- `tmux.conf`: tmux status and pane colors
|
||||||
|
- `bash-prompt.sh`: bash prompt using the shared palette
|
||||||
|
- `p10k.zsh`: Powerlevel10k overrides using the shared palette
|
||||||
|
|
||||||
|
This package is meant to be stowed from the dotfiles repo so that
|
||||||
|
`~/.config/rider-palette/*` becomes available to the rest of the system.
|
||||||
32
rider-palette/.config/rider-palette/bash-prompt.sh
Normal file
32
rider-palette/.config/rider-palette/bash-prompt.sh
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# Generated from palette.json by generate.py. Do not edit directly.
|
||||||
|
# Rider-colored bash prompt using the shared palette.
|
||||||
|
|
||||||
|
# shellcheck shell=bash
|
||||||
|
|
||||||
|
if [ -r "$HOME/.config/rider-palette/palette.sh" ]; then
|
||||||
|
. "$HOME/.config/rider-palette/palette.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rider_fg() {
|
||||||
|
local hex="${1#\#}"
|
||||||
|
printf '\[\033[38;2;%d;%d;%dm\]' "$((16#${hex:0:2}))" "$((16#${hex:2:2}))" "$((16#${hex:4:2}))"
|
||||||
|
}
|
||||||
|
|
||||||
|
RIDER_RESET='\[\033[0m\]'
|
||||||
|
|
||||||
|
__rider_git_branch() {
|
||||||
|
command -v git >/dev/null 2>&1 || return 0
|
||||||
|
git rev-parse --is-inside-work-tree >/dev/null 2>&1 || return 0
|
||||||
|
|
||||||
|
local branch
|
||||||
|
branch="$(git symbolic-ref --quiet --short HEAD 2>/dev/null || git rev-parse --short HEAD 2>/dev/null)" || return 0
|
||||||
|
[ -n "$branch" ] || return 0
|
||||||
|
|
||||||
|
printf ' %sgit:%s%s' "$(rider_fg "$RIDER_FUNC")" "$branch" "$RIDER_RESET"
|
||||||
|
}
|
||||||
|
|
||||||
|
__rider_set_bash_prompt() {
|
||||||
|
PS1="${debian_chroot:+($debian_chroot)}$(rider_fg "$RIDER_FG_BRIGHT")\u@\h${RIDER_RESET}$(rider_fg "$RIDER_BORDER"):$(rider_fg "$RIDER_KEYWORD")\w${RIDER_RESET}$(__rider_git_branch)$(rider_fg "$RIDER_BORDER") \$ ${RIDER_RESET}"
|
||||||
|
}
|
||||||
|
|
||||||
|
PROMPT_COMMAND=__rider_set_bash_prompt
|
||||||
239
rider-palette/.config/rider-palette/generate.py
Normal file
239
rider-palette/.config/rider-palette/generate.py
Normal file
@@ -0,0 +1,239 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import json
|
||||||
|
from pathlib import Path
|
||||||
|
from textwrap import dedent
|
||||||
|
|
||||||
|
|
||||||
|
ROOT = Path(__file__).resolve().parent
|
||||||
|
PALETTE_FILE = ROOT / "palette.json"
|
||||||
|
|
||||||
|
|
||||||
|
def load_palette() -> dict[str, str]:
|
||||||
|
data = json.loads(PALETTE_FILE.read_text())
|
||||||
|
return data["colors"]
|
||||||
|
|
||||||
|
|
||||||
|
def hex_no_hash(value: str) -> str:
|
||||||
|
return value.lstrip("#")
|
||||||
|
|
||||||
|
|
||||||
|
def camel_from_snake(name: str) -> str:
|
||||||
|
head, *tail = name.split("_")
|
||||||
|
return head + "".join(part.capitalize() for part in tail)
|
||||||
|
|
||||||
|
|
||||||
|
def write(path: Path, content: str) -> None:
|
||||||
|
path.write_text(content.rstrip() + "\n")
|
||||||
|
|
||||||
|
|
||||||
|
def render_palette_sh(colors: dict[str, str]) -> str:
|
||||||
|
lines = [
|
||||||
|
"# Generated from palette.json by generate.py. Do not edit directly.",
|
||||||
|
"",
|
||||||
|
]
|
||||||
|
for name, value in colors.items():
|
||||||
|
lines.append(f'export RIDER_{name.upper()}="{value}"')
|
||||||
|
return "\n".join(lines)
|
||||||
|
|
||||||
|
|
||||||
|
def render_palette_css(colors: dict[str, str]) -> str:
|
||||||
|
lines = [
|
||||||
|
"/* Generated from palette.json by generate.py. Do not edit directly. */",
|
||||||
|
":root {",
|
||||||
|
]
|
||||||
|
for name, value in colors.items():
|
||||||
|
lines.append(f" --rider-{name.replace('_', '-')}: {value};")
|
||||||
|
lines.append("}")
|
||||||
|
lines.append("")
|
||||||
|
for name, value in colors.items():
|
||||||
|
lines.append(f"@define-color rider-{name.replace('_', '-')} {value};")
|
||||||
|
return "\n".join(lines)
|
||||||
|
|
||||||
|
|
||||||
|
def render_palette_hypr(colors: dict[str, str]) -> str:
|
||||||
|
lines = [
|
||||||
|
"# Generated from palette.json by generate.py. Do not edit directly.",
|
||||||
|
"# Usage:",
|
||||||
|
"# source = ~/.config/rider-palette/palette.hyprland.conf",
|
||||||
|
"",
|
||||||
|
]
|
||||||
|
for name, value in colors.items():
|
||||||
|
lines.append(f"${name} = rgb({hex_no_hash(value)})")
|
||||||
|
lines.append(f"${camel_from_snake(name)}Alpha = {hex_no_hash(value)}")
|
||||||
|
return "\n".join(lines)
|
||||||
|
|
||||||
|
|
||||||
|
def render_palette_rasi(colors: dict[str, str]) -> str:
|
||||||
|
lines = [
|
||||||
|
"/* Generated from palette.json by generate.py. Do not edit directly. */",
|
||||||
|
"* {",
|
||||||
|
]
|
||||||
|
for name, value in colors.items():
|
||||||
|
lines.append(f" rider-{name.replace('_', '-')}: {value};")
|
||||||
|
lines.append("}")
|
||||||
|
return "\n".join(lines)
|
||||||
|
|
||||||
|
|
||||||
|
def render_tmux_conf(colors: dict[str, str]) -> str:
|
||||||
|
return dedent(
|
||||||
|
f"""
|
||||||
|
# Generated from palette.json by generate.py. Do not edit directly.
|
||||||
|
# Source this near the end of ~/.tmux.conf, after plugin/theme setup.
|
||||||
|
|
||||||
|
set -g status-style "bg={colors['bg']},fg={colors['fg_bright']}"
|
||||||
|
set -g status-left-style "bg={colors['bg']},fg={colors['fg_bright']}"
|
||||||
|
set -g status-right-style "bg={colors['bg']},fg={colors['fg_bright']}"
|
||||||
|
|
||||||
|
set -g message-style "bg={colors['cursor_line']},fg={colors['fg_bright']}"
|
||||||
|
set -g message-command-style "bg={colors['cursor_line']},fg={colors['fg_bright']}"
|
||||||
|
set -g mode-style "bg={colors['selection']},fg={colors['fg_bright']}"
|
||||||
|
|
||||||
|
set -g pane-border-style "fg={colors['border']}"
|
||||||
|
set -g pane-active-border-style "fg={colors['keyword']}"
|
||||||
|
set -g clock-mode-colour "{colors['keyword']}"
|
||||||
|
|
||||||
|
set -g window-status-style "bg={colors['bg']},fg={colors['fg_gutter']}"
|
||||||
|
set -g window-status-current-style "bg={colors['cursor_line']},fg={colors['fg_bright']}"
|
||||||
|
set -g window-status-current-format "#[fg={colors['func']},bg={colors['cursor_line']},bold] #I #W "
|
||||||
|
set -g window-status-format "#[fg={colors['fg_gutter']},bg={colors['bg']}] #I #W "
|
||||||
|
"""
|
||||||
|
).strip()
|
||||||
|
|
||||||
|
|
||||||
|
def render_bash_prompt() -> str:
|
||||||
|
return dedent(
|
||||||
|
"""
|
||||||
|
# Generated from palette.json by generate.py. Do not edit directly.
|
||||||
|
# Rider-colored bash prompt using the shared palette.
|
||||||
|
|
||||||
|
# shellcheck shell=bash
|
||||||
|
|
||||||
|
if [ -r "$HOME/.config/rider-palette/palette.sh" ]; then
|
||||||
|
. "$HOME/.config/rider-palette/palette.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rider_fg() {
|
||||||
|
local hex="${1#\\#}"
|
||||||
|
printf '\\[\\033[38;2;%d;%d;%dm\\]' "$((16#${hex:0:2}))" "$((16#${hex:2:2}))" "$((16#${hex:4:2}))"
|
||||||
|
}
|
||||||
|
|
||||||
|
RIDER_RESET='\\[\\033[0m\\]'
|
||||||
|
|
||||||
|
__rider_git_branch() {
|
||||||
|
command -v git >/dev/null 2>&1 || return 0
|
||||||
|
git rev-parse --is-inside-work-tree >/dev/null 2>&1 || return 0
|
||||||
|
|
||||||
|
local branch
|
||||||
|
branch="$(git symbolic-ref --quiet --short HEAD 2>/dev/null || git rev-parse --short HEAD 2>/dev/null)" || return 0
|
||||||
|
[ -n "$branch" ] || return 0
|
||||||
|
|
||||||
|
printf ' %sgit:%s%s' "$(rider_fg "$RIDER_FUNC")" "$branch" "$RIDER_RESET"
|
||||||
|
}
|
||||||
|
|
||||||
|
__rider_set_bash_prompt() {
|
||||||
|
PS1="${debian_chroot:+($debian_chroot)}$(rider_fg "$RIDER_FG_BRIGHT")\\u@\\h${RIDER_RESET}$(rider_fg "$RIDER_BORDER"):$(rider_fg "$RIDER_KEYWORD")\\w${RIDER_RESET}$(__rider_git_branch)$(rider_fg "$RIDER_BORDER") \\\\$ ${RIDER_RESET}"
|
||||||
|
}
|
||||||
|
|
||||||
|
PROMPT_COMMAND=__rider_set_bash_prompt
|
||||||
|
"""
|
||||||
|
).strip()
|
||||||
|
|
||||||
|
|
||||||
|
def render_p10k_zsh() -> str:
|
||||||
|
return dedent(
|
||||||
|
"""
|
||||||
|
# Generated from palette.json by generate.py. Do not edit directly.
|
||||||
|
# Rider-colored Powerlevel10k overrides using the shared palette.
|
||||||
|
|
||||||
|
[[ -r "$HOME/.config/rider-palette/palette.sh" ]] && source "$HOME/.config/rider-palette/palette.sh"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_BACKGROUND="$RIDER_BG"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="%F{$RIDER_BORDER}╭─%f"
|
||||||
|
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX="%F{$RIDER_BORDER}├─%f"
|
||||||
|
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="%F{$RIDER_BORDER}╰─%f"
|
||||||
|
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX="%F{$RIDER_BORDER}─╮%f"
|
||||||
|
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX="%F{$RIDER_BORDER}─┤%f"
|
||||||
|
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX="%F{$RIDER_BORDER}─╯%f"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR="%F{$RIDER_BORDER}\\uE0B1%f"
|
||||||
|
typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR="%F{$RIDER_BORDER}\\uE0B3%f"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND="$RIDER_FG_BRIGHT"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_DIR_FOREGROUND="$RIDER_KEYWORD"
|
||||||
|
typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND="$RIDER_TYPE"
|
||||||
|
typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND="$RIDER_FUNC"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR="$RIDER_FUNC"
|
||||||
|
typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR="$RIDER_BORDER"
|
||||||
|
typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND="$RIDER_FUNC"
|
||||||
|
typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND="$RIDER_FIELD"
|
||||||
|
typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND="$RIDER_NUMBER"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND="$RIDER_FUNC"
|
||||||
|
typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND="$RIDER_FUNC"
|
||||||
|
typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND="$RIDER_ERROR"
|
||||||
|
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND="$RIDER_ERROR"
|
||||||
|
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND="$RIDER_ERROR"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND="$RIDER_STRING"
|
||||||
|
typeset -g POWERLEVEL9K_TIME_FOREGROUND="$RIDER_FIELD"
|
||||||
|
typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND="$RIDER_TYPE"
|
||||||
|
typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND="$RIDER_FG_BRIGHT"
|
||||||
|
"""
|
||||||
|
).strip()
|
||||||
|
|
||||||
|
|
||||||
|
def render_readme() -> str:
|
||||||
|
return dedent(
|
||||||
|
"""
|
||||||
|
# Rider Palette Reuse
|
||||||
|
|
||||||
|
`palette.json` is the single source of truth for your shared Rider palette.
|
||||||
|
|
||||||
|
Regenerate all derived files with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 ~/.config/rider-palette/generate.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Generated outputs:
|
||||||
|
|
||||||
|
- `palette.sh`: shell env vars for prompts and scripts
|
||||||
|
- `palette.css`: CSS variables for Waybar and Wofi
|
||||||
|
- `palette.hyprland.conf`: Hyprlang variables for Hyprland and Hyprlock
|
||||||
|
- `palette.rasi`: Rasi variables for Rofi
|
||||||
|
- `tmux.conf`: tmux status and pane colors
|
||||||
|
- `bash-prompt.sh`: bash prompt using the shared palette
|
||||||
|
- `p10k.zsh`: Powerlevel10k overrides using the shared palette
|
||||||
|
|
||||||
|
This package is meant to be stowed from the dotfiles repo so that
|
||||||
|
`~/.config/rider-palette/*` becomes available to the rest of the system.
|
||||||
|
"""
|
||||||
|
).strip()
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> None:
|
||||||
|
colors = load_palette()
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
ROOT / "palette.sh": render_palette_sh(colors),
|
||||||
|
ROOT / "palette.css": render_palette_css(colors),
|
||||||
|
ROOT / "palette.hyprland.conf": render_palette_hypr(colors),
|
||||||
|
ROOT / "palette.rasi": render_palette_rasi(colors),
|
||||||
|
ROOT / "tmux.conf": render_tmux_conf(colors),
|
||||||
|
ROOT / "bash-prompt.sh": render_bash_prompt(),
|
||||||
|
ROOT / "p10k.zsh": render_p10k_zsh(),
|
||||||
|
ROOT / "README.md": render_readme(),
|
||||||
|
}
|
||||||
|
|
||||||
|
for path, content in outputs.items():
|
||||||
|
write(path, content)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
39
rider-palette/.config/rider-palette/p10k.zsh
Normal file
39
rider-palette/.config/rider-palette/p10k.zsh
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
# Generated from palette.json by generate.py. Do not edit directly.
|
||||||
|
# Rider-colored Powerlevel10k overrides using the shared palette.
|
||||||
|
|
||||||
|
[[ -r "$HOME/.config/rider-palette/palette.sh" ]] && source "$HOME/.config/rider-palette/palette.sh"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_BACKGROUND="$RIDER_BG"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="%F{$RIDER_BORDER}╭─%f"
|
||||||
|
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX="%F{$RIDER_BORDER}├─%f"
|
||||||
|
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="%F{$RIDER_BORDER}╰─%f"
|
||||||
|
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX="%F{$RIDER_BORDER}─╮%f"
|
||||||
|
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX="%F{$RIDER_BORDER}─┤%f"
|
||||||
|
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX="%F{$RIDER_BORDER}─╯%f"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR="%F{$RIDER_BORDER}\uE0B1%f"
|
||||||
|
typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR="%F{$RIDER_BORDER}\uE0B3%f"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND="$RIDER_FG_BRIGHT"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_DIR_FOREGROUND="$RIDER_KEYWORD"
|
||||||
|
typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND="$RIDER_TYPE"
|
||||||
|
typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND="$RIDER_FUNC"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR="$RIDER_FUNC"
|
||||||
|
typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR="$RIDER_BORDER"
|
||||||
|
typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND="$RIDER_FUNC"
|
||||||
|
typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND="$RIDER_FIELD"
|
||||||
|
typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND="$RIDER_NUMBER"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND="$RIDER_FUNC"
|
||||||
|
typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND="$RIDER_FUNC"
|
||||||
|
typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND="$RIDER_ERROR"
|
||||||
|
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND="$RIDER_ERROR"
|
||||||
|
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND="$RIDER_ERROR"
|
||||||
|
|
||||||
|
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND="$RIDER_STRING"
|
||||||
|
typeset -g POWERLEVEL9K_TIME_FOREGROUND="$RIDER_FIELD"
|
||||||
|
typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND="$RIDER_TYPE"
|
||||||
|
typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND="$RIDER_FG_BRIGHT"
|
||||||
40
rider-palette/.config/rider-palette/palette.css
Normal file
40
rider-palette/.config/rider-palette/palette.css
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
/* Generated from palette.json by generate.py. Do not edit directly. */
|
||||||
|
:root {
|
||||||
|
--rider-bg: #262626;
|
||||||
|
--rider-gutter: #282828;
|
||||||
|
--rider-cursor-line: #202424;
|
||||||
|
--rider-selection: #08335E;
|
||||||
|
--rider-border: #404040;
|
||||||
|
--rider-fg: #BDBDBD;
|
||||||
|
--rider-fg-bright: #F0F0F0;
|
||||||
|
--rider-fg-gutter: #808080;
|
||||||
|
--rider-comment: #85C46C;
|
||||||
|
--rider-keyword: #6C95EB;
|
||||||
|
--rider-type: #C191FF;
|
||||||
|
--rider-type-alt: #E1BFFF;
|
||||||
|
--rider-func: #39CC9B;
|
||||||
|
--rider-field: #66C3CC;
|
||||||
|
--rider-string: #C9A26D;
|
||||||
|
--rider-number: #ED94C0;
|
||||||
|
--rider-escape: #D688D4;
|
||||||
|
--rider-error: #FF5647;
|
||||||
|
}
|
||||||
|
|
||||||
|
@define-color rider-bg #262626;
|
||||||
|
@define-color rider-gutter #282828;
|
||||||
|
@define-color rider-cursor-line #202424;
|
||||||
|
@define-color rider-selection #08335E;
|
||||||
|
@define-color rider-border #404040;
|
||||||
|
@define-color rider-fg #BDBDBD;
|
||||||
|
@define-color rider-fg-bright #F0F0F0;
|
||||||
|
@define-color rider-fg-gutter #808080;
|
||||||
|
@define-color rider-comment #85C46C;
|
||||||
|
@define-color rider-keyword #6C95EB;
|
||||||
|
@define-color rider-type #C191FF;
|
||||||
|
@define-color rider-type-alt #E1BFFF;
|
||||||
|
@define-color rider-func #39CC9B;
|
||||||
|
@define-color rider-field #66C3CC;
|
||||||
|
@define-color rider-string #C9A26D;
|
||||||
|
@define-color rider-number #ED94C0;
|
||||||
|
@define-color rider-escape #D688D4;
|
||||||
|
@define-color rider-error #FF5647;
|
||||||
40
rider-palette/.config/rider-palette/palette.hyprland.conf
Normal file
40
rider-palette/.config/rider-palette/palette.hyprland.conf
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# Generated from palette.json by generate.py. Do not edit directly.
|
||||||
|
# Usage:
|
||||||
|
# source = ~/.config/rider-palette/palette.hyprland.conf
|
||||||
|
|
||||||
|
$bg = rgb(262626)
|
||||||
|
$bgAlpha = 262626
|
||||||
|
$gutter = rgb(282828)
|
||||||
|
$gutterAlpha = 282828
|
||||||
|
$cursor_line = rgb(202424)
|
||||||
|
$cursorLineAlpha = 202424
|
||||||
|
$selection = rgb(08335E)
|
||||||
|
$selectionAlpha = 08335E
|
||||||
|
$border = rgb(404040)
|
||||||
|
$borderAlpha = 404040
|
||||||
|
$fg = rgb(BDBDBD)
|
||||||
|
$fgAlpha = BDBDBD
|
||||||
|
$fg_bright = rgb(F0F0F0)
|
||||||
|
$fgBrightAlpha = F0F0F0
|
||||||
|
$fg_gutter = rgb(808080)
|
||||||
|
$fgGutterAlpha = 808080
|
||||||
|
$comment = rgb(85C46C)
|
||||||
|
$commentAlpha = 85C46C
|
||||||
|
$keyword = rgb(6C95EB)
|
||||||
|
$keywordAlpha = 6C95EB
|
||||||
|
$type = rgb(C191FF)
|
||||||
|
$typeAlpha = C191FF
|
||||||
|
$type_alt = rgb(E1BFFF)
|
||||||
|
$typeAltAlpha = E1BFFF
|
||||||
|
$func = rgb(39CC9B)
|
||||||
|
$funcAlpha = 39CC9B
|
||||||
|
$field = rgb(66C3CC)
|
||||||
|
$fieldAlpha = 66C3CC
|
||||||
|
$string = rgb(C9A26D)
|
||||||
|
$stringAlpha = C9A26D
|
||||||
|
$number = rgb(ED94C0)
|
||||||
|
$numberAlpha = ED94C0
|
||||||
|
$escape = rgb(D688D4)
|
||||||
|
$escapeAlpha = D688D4
|
||||||
|
$error = rgb(FF5647)
|
||||||
|
$errorAlpha = FF5647
|
||||||
23
rider-palette/.config/rider-palette/palette.json
Normal file
23
rider-palette/.config/rider-palette/palette.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"name": "rider-black",
|
||||||
|
"colors": {
|
||||||
|
"bg": "#262626",
|
||||||
|
"gutter": "#282828",
|
||||||
|
"cursor_line": "#202424",
|
||||||
|
"selection": "#08335E",
|
||||||
|
"border": "#404040",
|
||||||
|
"fg": "#BDBDBD",
|
||||||
|
"fg_bright": "#F0F0F0",
|
||||||
|
"fg_gutter": "#808080",
|
||||||
|
"comment": "#85C46C",
|
||||||
|
"keyword": "#6C95EB",
|
||||||
|
"type": "#C191FF",
|
||||||
|
"type_alt": "#E1BFFF",
|
||||||
|
"func": "#39CC9B",
|
||||||
|
"field": "#66C3CC",
|
||||||
|
"string": "#C9A26D",
|
||||||
|
"number": "#ED94C0",
|
||||||
|
"escape": "#D688D4",
|
||||||
|
"error": "#FF5647"
|
||||||
|
}
|
||||||
|
}
|
||||||
21
rider-palette/.config/rider-palette/palette.rasi
Normal file
21
rider-palette/.config/rider-palette/palette.rasi
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/* Generated from palette.json by generate.py. Do not edit directly. */
|
||||||
|
* {
|
||||||
|
rider-bg: #262626;
|
||||||
|
rider-gutter: #282828;
|
||||||
|
rider-cursor-line: #202424;
|
||||||
|
rider-selection: #08335E;
|
||||||
|
rider-border: #404040;
|
||||||
|
rider-fg: #BDBDBD;
|
||||||
|
rider-fg-bright: #F0F0F0;
|
||||||
|
rider-fg-gutter: #808080;
|
||||||
|
rider-comment: #85C46C;
|
||||||
|
rider-keyword: #6C95EB;
|
||||||
|
rider-type: #C191FF;
|
||||||
|
rider-type-alt: #E1BFFF;
|
||||||
|
rider-func: #39CC9B;
|
||||||
|
rider-field: #66C3CC;
|
||||||
|
rider-string: #C9A26D;
|
||||||
|
rider-number: #ED94C0;
|
||||||
|
rider-escape: #D688D4;
|
||||||
|
rider-error: #FF5647;
|
||||||
|
}
|
||||||
20
rider-palette/.config/rider-palette/palette.sh
Normal file
20
rider-palette/.config/rider-palette/palette.sh
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Generated from palette.json by generate.py. Do not edit directly.
|
||||||
|
|
||||||
|
export RIDER_BG="#262626"
|
||||||
|
export RIDER_GUTTER="#282828"
|
||||||
|
export RIDER_CURSOR_LINE="#202424"
|
||||||
|
export RIDER_SELECTION="#08335E"
|
||||||
|
export RIDER_BORDER="#404040"
|
||||||
|
export RIDER_FG="#BDBDBD"
|
||||||
|
export RIDER_FG_BRIGHT="#F0F0F0"
|
||||||
|
export RIDER_FG_GUTTER="#808080"
|
||||||
|
export RIDER_COMMENT="#85C46C"
|
||||||
|
export RIDER_KEYWORD="#6C95EB"
|
||||||
|
export RIDER_TYPE="#C191FF"
|
||||||
|
export RIDER_TYPE_ALT="#E1BFFF"
|
||||||
|
export RIDER_FUNC="#39CC9B"
|
||||||
|
export RIDER_FIELD="#66C3CC"
|
||||||
|
export RIDER_STRING="#C9A26D"
|
||||||
|
export RIDER_NUMBER="#ED94C0"
|
||||||
|
export RIDER_ESCAPE="#D688D4"
|
||||||
|
export RIDER_ERROR="#FF5647"
|
||||||
19
rider-palette/.config/rider-palette/tmux.conf
Normal file
19
rider-palette/.config/rider-palette/tmux.conf
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Generated from palette.json by generate.py. Do not edit directly.
|
||||||
|
# Source this near the end of ~/.tmux.conf, after plugin/theme setup.
|
||||||
|
|
||||||
|
set -g status-style "bg=#262626,fg=#F0F0F0"
|
||||||
|
set -g status-left-style "bg=#262626,fg=#F0F0F0"
|
||||||
|
set -g status-right-style "bg=#262626,fg=#F0F0F0"
|
||||||
|
|
||||||
|
set -g message-style "bg=#202424,fg=#F0F0F0"
|
||||||
|
set -g message-command-style "bg=#202424,fg=#F0F0F0"
|
||||||
|
set -g mode-style "bg=#08335E,fg=#F0F0F0"
|
||||||
|
|
||||||
|
set -g pane-border-style "fg=#404040"
|
||||||
|
set -g pane-active-border-style "fg=#6C95EB"
|
||||||
|
set -g clock-mode-colour "#6C95EB"
|
||||||
|
|
||||||
|
set -g window-status-style "bg=#262626,fg=#808080"
|
||||||
|
set -g window-status-current-style "bg=#202424,fg=#F0F0F0"
|
||||||
|
set -g window-status-current-format "#[fg=#39CC9B,bg=#202424,bold] #I #W "
|
||||||
|
set -g window-status-format "#[fg=#808080,bg=#262626] #I #W "
|
||||||
@@ -18,6 +18,13 @@ bind-key j select-pane -D
|
|||||||
bind-key k select-pane -U
|
bind-key k select-pane -U
|
||||||
bind-key l select-pane -R
|
bind-key l select-pane -R
|
||||||
|
|
||||||
|
# Split panes in the same directory
|
||||||
|
bind '"' split-window -v -c "#{pane_current_path}"
|
||||||
|
bind % split-window -h -c "#{pane_current_path}"
|
||||||
|
|
||||||
|
# New window in same directory
|
||||||
|
bind c new-window -c "#{pane_current_path}"
|
||||||
|
|
||||||
# list of plugins
|
# list of plugins
|
||||||
set -g @plugin 'tmux-plugins/tpm'
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
# set -g @plugin '2kabhishek/tmux2k'
|
# set -g @plugin '2kabhishek/tmux2k'
|
||||||
@@ -38,3 +45,6 @@ set -g @catppuccin_window_current_text "#W"
|
|||||||
|
|
||||||
# initialize TMUX plugin manager
|
# initialize TMUX plugin manager
|
||||||
run '~/.tmux/plugins/tpm/tpm'
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
|
||||||
|
# Shared Rider palette overrides
|
||||||
|
source-file ~/.config/rider-palette/tmux.conf
|
||||||
|
|||||||
68
walker/.config/walker/config.toml
Normal file
68
walker/.config/walker/config.toml
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
force_keyboard_focus = true
|
||||||
|
close_when_open = true
|
||||||
|
click_to_close = true
|
||||||
|
single_click_activation = true
|
||||||
|
selection_wrap = true
|
||||||
|
resume_last_query = true
|
||||||
|
hide_quick_activation = true
|
||||||
|
hide_action_hints = true
|
||||||
|
hide_action_hints_dmenu = true
|
||||||
|
hide_return_action = true
|
||||||
|
theme = "rider-omarchy"
|
||||||
|
|
||||||
|
[shell]
|
||||||
|
exclusive_zone = -1
|
||||||
|
layer = "overlay"
|
||||||
|
anchor_top = true
|
||||||
|
anchor_bottom = true
|
||||||
|
anchor_left = true
|
||||||
|
anchor_right = true
|
||||||
|
|
||||||
|
[placeholders]
|
||||||
|
"default" = { input = "Search apps, files, commands", list = "No matches" }
|
||||||
|
|
||||||
|
[keybinds]
|
||||||
|
close = ["Escape"]
|
||||||
|
next = ["Down", "ctrl j"]
|
||||||
|
previous = ["Up", "ctrl k"]
|
||||||
|
left = ["Left"]
|
||||||
|
right = ["Right"]
|
||||||
|
down = ["Down"]
|
||||||
|
up = ["Up"]
|
||||||
|
toggle_exact = ["ctrl e"]
|
||||||
|
show_actions = ["alt Return"]
|
||||||
|
page_down = ["Page_Down"]
|
||||||
|
page_up = ["Page_Up"]
|
||||||
|
|
||||||
|
[providers]
|
||||||
|
default = ["desktopapplications", "calc", "websearch"]
|
||||||
|
empty = ["desktopapplications"]
|
||||||
|
max_results = 12
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = ";"
|
||||||
|
provider = "providerlist"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = ">"
|
||||||
|
provider = "runner"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = "/"
|
||||||
|
provider = "files"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = "="
|
||||||
|
provider = "calc"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = "$"
|
||||||
|
provider = "windows"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = ":"
|
||||||
|
provider = "clipboard"
|
||||||
|
|
||||||
|
[[providers.prefixes]]
|
||||||
|
prefix = "@"
|
||||||
|
provider = "websearch"
|
||||||
99
walker/.config/walker/themes/rider-omarchy/style.css
Normal file
99
walker/.config/walker/themes/rider-omarchy/style.css
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
@import url("../../../rider-palette/palette.css");
|
||||||
|
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
font-family: "JetBrainsMono Nerd Font", "JetBrains Mono", monospace;
|
||||||
|
font-size: 16px;
|
||||||
|
color: @rider-fg-bright;
|
||||||
|
}
|
||||||
|
|
||||||
|
window,
|
||||||
|
#window,
|
||||||
|
.background {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
box,
|
||||||
|
listview,
|
||||||
|
scrolledwindow {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
entry,
|
||||||
|
#input,
|
||||||
|
searchentry {
|
||||||
|
background: rgba(32, 36, 36, 0.96);
|
||||||
|
color: @rider-fg-bright;
|
||||||
|
border: 1px solid rgba(108, 149, 235, 0.35);
|
||||||
|
border-radius: 18px;
|
||||||
|
padding: 16px 18px;
|
||||||
|
margin: 0 0 16px 0;
|
||||||
|
min-height: 30px;
|
||||||
|
caret-color: @rider-func;
|
||||||
|
}
|
||||||
|
|
||||||
|
entry selection,
|
||||||
|
#input selection,
|
||||||
|
searchentry selection {
|
||||||
|
background: @rider-selection;
|
||||||
|
color: @rider-fg-bright;
|
||||||
|
}
|
||||||
|
|
||||||
|
listview,
|
||||||
|
#list,
|
||||||
|
.list {
|
||||||
|
background: rgba(38, 38, 38, 0.94);
|
||||||
|
border: 1px solid rgba(64, 64, 64, 0.95);
|
||||||
|
border-radius: 24px;
|
||||||
|
padding: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
child,
|
||||||
|
.item,
|
||||||
|
row {
|
||||||
|
background: transparent;
|
||||||
|
border-radius: 18px;
|
||||||
|
padding: 10px 12px;
|
||||||
|
margin: 4px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
child:selected,
|
||||||
|
child:focus,
|
||||||
|
child:hover,
|
||||||
|
.item:selected,
|
||||||
|
.item:hover,
|
||||||
|
row:selected,
|
||||||
|
row:hover {
|
||||||
|
background: rgba(8, 51, 94, 0.92);
|
||||||
|
}
|
||||||
|
|
||||||
|
label,
|
||||||
|
.label,
|
||||||
|
#label {
|
||||||
|
color: @rider-fg-bright;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sub,
|
||||||
|
.sub,
|
||||||
|
.dim-label,
|
||||||
|
.description {
|
||||||
|
color: @rider-fg-gutter;
|
||||||
|
}
|
||||||
|
|
||||||
|
#icon {
|
||||||
|
color: @rider-func;
|
||||||
|
margin-right: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#activationlabel,
|
||||||
|
.activationlabel,
|
||||||
|
.quick-activation {
|
||||||
|
color: @rider-string;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
#typeahead,
|
||||||
|
#placeholder,
|
||||||
|
.placeholder {
|
||||||
|
color: @rider-fg-gutter;
|
||||||
|
}
|
||||||
@@ -1,80 +1,57 @@
|
|||||||
// --// waybar config generated by wbarconfgen.sh //-- //
|
|
||||||
{
|
{
|
||||||
"layer": "top",
|
"layer": "top",
|
||||||
"position": "top",
|
"position": "top",
|
||||||
"mod": "dock",
|
"mod": "dock",
|
||||||
"margin-left": 0,
|
"margin-left": 10,
|
||||||
"margin-right": 0,
|
"margin-right": 10,
|
||||||
"margin-top": 0,
|
"margin-top": 10,
|
||||||
"margin-bottom": 0,
|
"margin-bottom": 0,
|
||||||
"exclusive": true,
|
"exclusive": true,
|
||||||
"passthrough": false,
|
"passthrough": false,
|
||||||
"gtk-layer-shell": true,
|
"gtk-layer-shell": true,
|
||||||
"reload_style_on_change": true,
|
"reload_style_on_change": true,
|
||||||
"modules-left": [
|
"modules-left": [
|
||||||
"hyprland/workspaces"
|
"custom/launcher",
|
||||||
|
"hyprland/workspaces",
|
||||||
|
"hyprland/window"
|
||||||
],
|
],
|
||||||
"modules-center": [
|
"modules-center": [
|
||||||
"group/center"
|
"clock"
|
||||||
],
|
],
|
||||||
"modules-right": [
|
"modules-right": [
|
||||||
"group/right"
|
"network",
|
||||||
|
"bluetooth",
|
||||||
|
"pulseaudio",
|
||||||
|
"cpu",
|
||||||
|
"memory",
|
||||||
|
"tray",
|
||||||
|
"custom/power"
|
||||||
],
|
],
|
||||||
"custom/flexspace": {
|
"custom/launcher": {
|
||||||
"format": "",
|
"format": "",
|
||||||
"tooltip": false,
|
"tooltip": true,
|
||||||
"expand": true
|
"tooltip-format": "Open Walker",
|
||||||
|
"on-click": "walker",
|
||||||
|
"on-click-right": "thunar"
|
||||||
},
|
},
|
||||||
"memory": {
|
"memory": {
|
||||||
"interval": 1,
|
"interval": 5,
|
||||||
"rotate": 270,
|
"format": " {}%"
|
||||||
"format": "{icon}",
|
|
||||||
"format-icons": [
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
""
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"cpu": {
|
"cpu": {
|
||||||
"interval": 1,
|
"interval": 5,
|
||||||
"format": "{icon}",
|
"format": " {usage}%"
|
||||||
"rotate": 270,
|
|
||||||
"format-icons": [
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
""
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"tray": {
|
"tray": {
|
||||||
"icon-size": 18,
|
"icon-size": 18,
|
||||||
"spacing": 6,
|
"spacing": 6,
|
||||||
"rotate": 0
|
"rotate": 0
|
||||||
},
|
},
|
||||||
"group/system": {
|
|
||||||
"orientation": "horizontal",
|
|
||||||
"modules": [
|
|
||||||
"memory",
|
|
||||||
"cpu",
|
|
||||||
"pulseaudio"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"custom/power": {
|
"custom/power": {
|
||||||
"format": "⏻",
|
"format": "",
|
||||||
"tooltip": false,
|
"tooltip": false,
|
||||||
"menu": "on-click",
|
"menu": "on-click",
|
||||||
"menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
|
"menu-file": "$HOME/.config/waybar/power_menu.xml",
|
||||||
"menu-actions": {
|
"menu-actions": {
|
||||||
"shutdown": "systemctl poweroff",
|
"shutdown": "systemctl poweroff",
|
||||||
"reboot": "systemctl reboot",
|
"reboot": "systemctl reboot",
|
||||||
@@ -84,28 +61,39 @@
|
|||||||
"lock": "hyprlock"
|
"lock": "hyprlock"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"group/center": {
|
|
||||||
"orientation": "horizontal",
|
|
||||||
"modules": [
|
|
||||||
"clock"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"group/right": {
|
|
||||||
"orientation": "horizontal",
|
|
||||||
"modules": [
|
|
||||||
"tray",
|
|
||||||
"group/system",
|
|
||||||
"custom/power"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"hyprland/workspaces": {
|
"hyprland/workspaces": {
|
||||||
"all-outputs": false,
|
"all-outputs": false,
|
||||||
"format": "{name}"
|
"sort-by-number": true,
|
||||||
|
"format": "{icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"1": "",
|
||||||
|
"2": "",
|
||||||
|
"3": "",
|
||||||
|
"4": "",
|
||||||
|
"5": "",
|
||||||
|
"6": "",
|
||||||
|
"7": "",
|
||||||
|
"8": "",
|
||||||
|
"9": "",
|
||||||
|
"10": "",
|
||||||
|
"urgent": "",
|
||||||
|
"active": "",
|
||||||
|
"default": "",
|
||||||
|
"empty": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprland/window": {
|
||||||
|
"separate-outputs": true,
|
||||||
|
"icon": true,
|
||||||
|
"max-length": 56,
|
||||||
|
"rewrite": {
|
||||||
|
"": "Desktop"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"clock": {
|
"clock": {
|
||||||
"format": "{:%R %a %d %b}",
|
"format": " {:%a %d %b} {:%H:%M}",
|
||||||
"rotate": 0,
|
"rotate": 0,
|
||||||
"on-click": "/usr/local/bin/ags -t ActivityCenter",
|
"on-click": "walker",
|
||||||
"tooltip-format": "<tt>{calendar}</tt>",
|
"tooltip-format": "<tt>{calendar}</tt>",
|
||||||
"calendar": {
|
"calendar": {
|
||||||
"mode": "year",
|
"mode": "year",
|
||||||
@@ -114,10 +102,10 @@
|
|||||||
"on-scroll": 1,
|
"on-scroll": 1,
|
||||||
"on-click-right": "mode",
|
"on-click-right": "mode",
|
||||||
"format": {
|
"format": {
|
||||||
"months": "<span color='#ffead3'><b>{}</b></span>",
|
"months": "<span color='#C191FF'><b>{}</b></span>",
|
||||||
"weeks": "<span color='#99ffdd'><b>{}</b></span>",
|
"weeks": "<span color='#66C3CC'><b>{}</b></span>",
|
||||||
"weekdays": "<span color='#ffcc66'><b>{}</b></span>",
|
"weekdays": "<span color='#C9A26D'><b>{}</b></span>",
|
||||||
"today": "<span color='#ff6699'><b>{}</b></span>"
|
"today": "<span color='#39CC9B'><b>{}</b></span>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"actions": {
|
"actions": {
|
||||||
@@ -129,18 +117,45 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pulseaudio": {
|
"pulseaudio": {
|
||||||
"format": "{icon}",
|
"format": "{icon} {volume}%",
|
||||||
"format-muted": "",
|
"format-muted": " muted",
|
||||||
"format-icons": {
|
"format-icons": {
|
||||||
"default": [
|
"default": [
|
||||||
"",
|
"",
|
||||||
""
|
"",
|
||||||
]
|
""
|
||||||
|
],
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": ""
|
||||||
},
|
},
|
||||||
"scroll-step": 5,
|
"scroll-step": 5,
|
||||||
"on-click": "pavucontrol", // Open PulseAudio control GUI
|
"on-click": "pavucontrol",
|
||||||
"on-click-right": "pamixer -t", // Toggle mute
|
"on-click-right": "pamixer -t",
|
||||||
"on-scroll-up": "pamixer -i 5", // Increase volume
|
"on-scroll-up": "pamixer -i 5",
|
||||||
"on-scroll-down": "pamixer -d 5" // Decrease volume
|
"on-scroll-down": "pamixer -d 5"
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
"interval": 5,
|
||||||
|
"format-wifi": " {signalStrength}%",
|
||||||
|
"format-ethernet": " ethernet",
|
||||||
|
"format-linked": " linked",
|
||||||
|
"format-disconnected": " offline",
|
||||||
|
"tooltip-format-wifi": "{essid} ({signalStrength}%)",
|
||||||
|
"tooltip-format-ethernet": "{ifname}",
|
||||||
|
"tooltip-format-disconnected": "Disconnected",
|
||||||
|
"on-click": "nm-connection-editor"
|
||||||
|
},
|
||||||
|
"bluetooth": {
|
||||||
|
"format": " {status}",
|
||||||
|
"format-disabled": " off",
|
||||||
|
"format-off": " off",
|
||||||
|
"format-no-controller": " n/a",
|
||||||
|
"format-on": " on",
|
||||||
|
"format-connected": " on",
|
||||||
|
"tooltip-format": "{controller_alias}\t{controller_address}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,56 +1,153 @@
|
|||||||
@define-color foreground #d8dee9;
|
@import url("../rider-palette/palette.css");
|
||||||
@define-color background #1a1b26;
|
|
||||||
|
@define-color foreground @rider-fg-bright;
|
||||||
|
@define-color foreground-muted @rider-fg-gutter;
|
||||||
|
@define-color background @rider-bg;
|
||||||
|
@define-color background-alt @rider-cursor-line;
|
||||||
|
@define-color accent @rider-func;
|
||||||
|
@define-color accent-alt @rider-keyword;
|
||||||
|
@define-color accent-soft @rider-field;
|
||||||
|
@define-color type @rider-type;
|
||||||
|
@define-color warning @rider-string;
|
||||||
|
@define-color danger @rider-error;
|
||||||
|
|
||||||
* {
|
* {
|
||||||
background-color: @background;
|
|
||||||
color: @foreground;
|
color: @foreground;
|
||||||
font-family: 'JetBrainsMono Nerd Font Mono';
|
font-family: 'JetBrainsMono Nerd Font Mono';
|
||||||
font-size: 20px;
|
font-size: 15px;
|
||||||
|
min-height: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modules-left {
|
window#waybar {
|
||||||
margin-left: 8px;
|
background: transparent;
|
||||||
|
color: @foreground;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modules-right {}
|
tooltip {
|
||||||
|
background: @background;
|
||||||
|
border: 1px solid @accent-alt;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modules-left,
|
||||||
|
.modules-center,
|
||||||
|
.modules-right {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-launcher,
|
||||||
|
#workspaces,
|
||||||
|
#window,
|
||||||
|
#clock,
|
||||||
|
#network,
|
||||||
|
#bluetooth,
|
||||||
|
#pulseaudio,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#tray,
|
||||||
|
#custom-power {
|
||||||
|
background: @background;
|
||||||
|
border: 1px solid alpha(@accent-alt, 0.22);
|
||||||
|
border-radius: 14px;
|
||||||
|
margin: 0 5px;
|
||||||
|
padding: 0 12px;
|
||||||
|
min-height: 34px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-launcher {
|
||||||
|
background: @accent;
|
||||||
|
border-color: @accent;
|
||||||
|
color: @background;
|
||||||
|
font-size: 18px;
|
||||||
|
padding: 0 14px 0 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
all: initial;
|
all: initial;
|
||||||
padding: 0 6px;
|
min-width: 18px;
|
||||||
margin: 0 1.5px;
|
padding: 0 8px;
|
||||||
min-width: 9px;
|
margin: 5px 2px;
|
||||||
opacity: 0.5;
|
border-radius: 10px;
|
||||||
|
color: @foreground-muted;
|
||||||
|
opacity: 0.9;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.empty {
|
#workspaces button.empty {
|
||||||
opacity: 0.25;
|
color: @foreground-muted;
|
||||||
|
opacity: 0.45;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.visible {
|
#workspaces button.visible {
|
||||||
opacity: 0.8;
|
color: @accent-alt;
|
||||||
|
background: alpha(@accent-alt, 0.12);
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.active {
|
#workspaces button.active {
|
||||||
opacity: 1.0;
|
color: @background;
|
||||||
|
background: @accent;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
color: @foreground-muted;
|
||||||
|
padding-right: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
border-color: alpha(@accent, 0.35);
|
||||||
|
color: @foreground;
|
||||||
|
font-weight: 700;
|
||||||
|
padding: 0 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
color: @accent-soft;
|
||||||
|
}
|
||||||
|
|
||||||
|
#bluetooth {
|
||||||
|
color: @type;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
color: @accent;
|
||||||
}
|
}
|
||||||
|
|
||||||
#cpu,
|
#cpu,
|
||||||
#memory,
|
#memory {
|
||||||
#battery,
|
color: @warning;
|
||||||
#pulseaudio,
|
|
||||||
#custom-omarchy,
|
|
||||||
#custom-screenrecording-indicator,
|
|
||||||
#custom-update,
|
|
||||||
#tray,
|
|
||||||
#bluetooth,
|
|
||||||
#network,
|
|
||||||
#custom-power,
|
|
||||||
#custom-expand-icon {
|
|
||||||
min-width: 24px;
|
|
||||||
font-size: 20px;
|
|
||||||
margin: 0px 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
padding: 0 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-power {
|
||||||
|
color: @danger;
|
||||||
|
padding: 0 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-launcher:hover,
|
||||||
|
#workspaces button:hover,
|
||||||
|
#network:hover,
|
||||||
|
#bluetooth:hover,
|
||||||
|
#pulseaudio:hover,
|
||||||
|
#cpu:hover,
|
||||||
|
#memory:hover,
|
||||||
|
#tray:hover,
|
||||||
|
#custom-power:hover,
|
||||||
|
#clock:hover {
|
||||||
|
box-shadow: none;
|
||||||
|
background: @background-alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-launcher:hover,
|
||||||
|
#workspaces button.active:hover {
|
||||||
|
background: @accent;
|
||||||
|
}
|
||||||
|
|
||||||
.hidden {
|
.hidden {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
|||||||
@@ -118,4 +118,5 @@ source $ZSH/oh-my-zsh.sh
|
|||||||
|
|
||||||
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||||
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
||||||
export PATH="$HOME/.local/bin:$PATH"
|
[[ -r ~/.config/rider-palette/p10k.zsh ]] && source ~/.config/rider-palette/p10k.zsh
|
||||||
|
export PATH="$HOME/.dotnet/tools:$HOME/.local/bin:$PATH"
|
||||||
|
|||||||
Reference in New Issue
Block a user