Compare commits
37 Commits
2082904cd1
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 712c4c61ff | |||
| 224eb3d645 | |||
| f7620ab2c7 | |||
| bd25cc4efc | |||
| a2abffad09 | |||
| 92c5eb2d18 | |||
| ec8f9cf14d | |||
| 63dccc0025 | |||
| ffe45b43c5 | |||
| 1ebcd3ae46 | |||
| 1d7835bf4c | |||
| 13e0add1c2 | |||
| b783b25d32 | |||
| 373c9fe4aa | |||
| 10c5d8f9b3 | |||
| ffd1dd19bb | |||
| f9a20c0717 | |||
| 332ed27869 | |||
| 3762c33a8d | |||
| 9854dc9ea4 | |||
| 054730ba26 | |||
| d5cc0a1de1 | |||
| 8e31d1bb5a | |||
| 10de18f327 | |||
| 231f72704c | |||
| 19e76149a0 | |||
| a88508e5f9 | |||
| 641d06a8d5 | |||
| 7c7b0dbb47 | |||
| 1f7ed68ce7 | |||
| aac9378d71 | |||
| 6bc4e3e870 | |||
| b6d7d77191 | |||
| d8880a303e | |||
| 2eabf8290a | |||
| 445e3b78d2 | |||
| 73e2ea9e9a |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.codex
|
||||||
@@ -1,40 +1,27 @@
|
|||||||
|
|
||||||
[font]
|
[font]
|
||||||
size = 16
|
size = 13
|
||||||
|
|
||||||
|
[font.offset]
|
||||||
|
y = 0
|
||||||
|
x = 0
|
||||||
|
|
||||||
[font.normal]
|
[font.normal]
|
||||||
family = "JetBrainsMono Nerd Font"
|
family = "ComicShannsMono Nerd Font"
|
||||||
style = "Regular"
|
style = "Regular"
|
||||||
|
|
||||||
[font.bold]
|
[font.bold]
|
||||||
family = "JetBrainsMono Nerd Font"
|
|
||||||
style = "Bold"
|
style = "Bold"
|
||||||
|
|
||||||
[font.italic]
|
[font.italic]
|
||||||
family = "JetBrainsMono Nerd Font"
|
|
||||||
style = "Italic"
|
style = "Italic"
|
||||||
|
|
||||||
[font.bold_italic]
|
[font.bold_italic]
|
||||||
family = "JetBrainsMono Nerd Font"
|
|
||||||
style = "Bold Italic"
|
style = "Bold Italic"
|
||||||
|
|
||||||
[window]
|
[window]
|
||||||
opacity = 0.95
|
opacity = 0.95
|
||||||
padding = { x = 5, y = 5 }
|
padding = { x = 5, y = 5 }
|
||||||
|
|
||||||
[colors.primary]
|
[general]
|
||||||
background = "#1a1b26"
|
import = ["~/.config/rider-palette/alacritty.toml"]
|
||||||
foreground = "#c0caf5"
|
|
||||||
|
|
||||||
[colors.normal]
|
|
||||||
black = "#1e1e2e"
|
|
||||||
red = "#f38ba8"
|
|
||||||
green = "#a6e3a1"
|
|
||||||
yellow = "#f9e2af"
|
|
||||||
blue = "#61afef"
|
|
||||||
magenta = "#f5c2e7"
|
|
||||||
cyan = "#94e2d5"
|
|
||||||
white = "#cdd6f4"
|
|
||||||
|
|
||||||
[colors.cursor]
|
|
||||||
text = "CellBackground"
|
|
||||||
cursor = "CellForeground"
|
|
||||||
|
|||||||
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 ~ bash zsh tmux nvim hypr waybar alacritty rider-palette walker
|
stow -t ~ bash zsh tmux nvim hypr waybar mako alacritty rider-palette walker
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||||
# for examples
|
# for examples
|
||||||
|
|
||||||
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
# If not running interactively, don't do anything
|
# If not running interactively, don't do anything
|
||||||
case $- in
|
case $- in
|
||||||
*i*) ;;
|
*i*) ;;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ set -euo pipefail
|
|||||||
# ====== CONFIG ======
|
# ====== CONFIG ======
|
||||||
DOTFILES_DIR="${DOTFILES_DIR:-$HOME/repos/dotfiles}"
|
DOTFILES_DIR="${DOTFILES_DIR:-$HOME/repos/dotfiles}"
|
||||||
DOTFILES_GIT_URL="${DOTFILES_GIT_URL:-}" # ex: git@github.com:TON_USER/dotfiles.git
|
DOTFILES_GIT_URL="${DOTFILES_GIT_URL:-}" # ex: git@github.com:TON_USER/dotfiles.git
|
||||||
STOW_PACKAGES_DEFAULT=("zsh" "tmux" "nvim" "hypr" "hypridle" "waybar" "alacritty")
|
STOW_PACKAGES_DEFAULT=("zsh" "tmux" "nvim" "hypr" "waybar" "mako" "alacritty")
|
||||||
|
|
||||||
INSTALL_FONTS="${INSTALL_FONTS:-1}" # 1 = install nerd font, 0 = skip
|
INSTALL_FONTS="${INSTALL_FONTS:-1}" # 1 = install nerd font, 0 = skip
|
||||||
SET_DEFAULT_SHELL="${SET_DEFAULT_SHELL:-1}" # 1 = chsh to zsh, 0 = skip
|
SET_DEFAULT_SHELL="${SET_DEFAULT_SHELL:-1}" # 1 = chsh to zsh, 0 = skip
|
||||||
@@ -61,7 +61,7 @@ sudo_run apt install -y build-essential || true
|
|||||||
# Hypr ecosystem (availability depends on distro/repo)
|
# Hypr ecosystem (availability depends on distro/repo)
|
||||||
# We try, but do not fail if packages aren't found.
|
# We try, but do not fail if packages aren't found.
|
||||||
log "Trying to install Hyprland ecosystem packages (best effort)"
|
log "Trying to install Hyprland ecosystem packages (best effort)"
|
||||||
sudo_run apt install -y hyprland hypridle waybar alacritty 2>/dev/null || true
|
sudo_run apt install -y hyprland hyprpaper hypridle waybar mako-notifier alacritty 2>/dev/null || true
|
||||||
|
|
||||||
# ====== DOTFILES CLONE (OPTIONAL) ======
|
# ====== DOTFILES CLONE (OPTIONAL) ======
|
||||||
if [ ! -d "$DOTFILES_DIR/.git" ]; then
|
if [ ! -d "$DOTFILES_DIR/.git" ]; then
|
||||||
|
|||||||
BIN
hypr/.config/hypr/assets/background.png
Normal file
BIN
hypr/.config/hypr/assets/background.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 MiB |
@@ -17,7 +17,6 @@
|
|||||||
# 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
|
|
||||||
|
|
||||||
|
|
||||||
################
|
################
|
||||||
@@ -26,7 +25,7 @@ source = ~/.config/rider-palette/palette.hyprland.conf
|
|||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
monitor=DP-1,3440x1440@165, 0x0,1
|
monitor=DP-1,3440x1440@165, 0x0,1
|
||||||
monitor=DP-3,1920x1080@60, 3440x1200,1
|
|
||||||
###################
|
###################
|
||||||
### MY PROGRAMS ###
|
### MY PROGRAMS ###
|
||||||
###################
|
###################
|
||||||
@@ -37,7 +36,7 @@ monitor=DP-3,1920x1080@60, 3440x1200,1
|
|||||||
$terminal = alacritty
|
$terminal = alacritty
|
||||||
$fileManager = thunar
|
$fileManager = thunar
|
||||||
$navigator = firefox
|
$navigator = firefox
|
||||||
$menu = walker
|
$menu = wofi --show drun
|
||||||
|
|
||||||
|
|
||||||
#################
|
#################
|
||||||
@@ -50,7 +49,6 @@ $menu = walker
|
|||||||
# 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
|
|
||||||
|
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
@@ -75,13 +73,13 @@ env = QT_QPA_PLATFORMTHEME,qt5ct
|
|||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||||
general {
|
general {
|
||||||
gaps_in = 2
|
gaps_in = 4
|
||||||
gaps_out = 4
|
gaps_out = 8
|
||||||
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 = $func
|
col.active_border = rgba(33ccffff)
|
||||||
col.inactive_border = $border
|
col.inactive_border = rgba(595959ff)
|
||||||
|
|
||||||
# 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
|
||||||
@@ -90,11 +88,18 @@ general {
|
|||||||
allow_tearing = false
|
allow_tearing = false
|
||||||
|
|
||||||
layout = dwindle
|
layout = dwindle
|
||||||
|
# layout = master
|
||||||
|
}
|
||||||
|
|
||||||
|
master {
|
||||||
|
new_status = inherit
|
||||||
|
mfact = 0.33
|
||||||
|
orientation = center
|
||||||
}
|
}
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||||
decoration {
|
decoration {
|
||||||
rounding = 3
|
rounding = 0
|
||||||
inactive_opacity = 1.00
|
inactive_opacity = 1.00
|
||||||
active_opacity = 1.00
|
active_opacity = 1.00
|
||||||
fullscreen_opacity = 1.00
|
fullscreen_opacity = 1.00
|
||||||
@@ -133,8 +138,8 @@ animations {
|
|||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||||
dwindle {
|
dwindle {
|
||||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
pseudotile = false # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||||
preserve_split = true # You probably want this
|
preserve_split = false # You probably want this
|
||||||
}
|
}
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
@@ -174,11 +179,6 @@ cursor {
|
|||||||
inactive_timeout = 1
|
inactive_timeout = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
|
||||||
# gestures {
|
|
||||||
# workspace_swipe = false
|
|
||||||
#}
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
### KEYBINDINGSS ###
|
### KEYBINDINGSS ###
|
||||||
####################
|
####################
|
||||||
@@ -189,27 +189,40 @@ $mainMod = SUPER # Sets "Windows" key as main modifier
|
|||||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||||
bind = $mainMod, Z, exec, $terminal
|
bind = $mainMod, Z, exec, $terminal
|
||||||
bind = $mainMod, C, killactive,
|
bind = $mainMod, C, killactive,
|
||||||
bind = $mainMod, M, exit,
|
# bind = $mainMod, M, exit,
|
||||||
bind = $mainMod, E, exec, $fileManager bind = $mainMod, N, exec, $navigator
|
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
|
||||||
bind = $mainMod, Y, exec, ~/scripts/screenshot-to-clipboard.sh
|
bind = $mainMod, Y, exec, ~/scripts/screenshot-to-clipboard.sh
|
||||||
|
|
||||||
|
# Switch to layouts
|
||||||
|
bind = $mainMod, M, exec, ~/scripts/toggle_layout.sh
|
||||||
|
bind = $mainMod, Return, layoutmsg, swapwithmaster
|
||||||
|
bind = $mainMod, B, layoutmsg, mfact +0.05
|
||||||
|
bind = $mainMod, N, layoutmsg, mfact -0.05
|
||||||
|
|
||||||
# Move focus with mainMod + arrow keys
|
# Move focus with mainMod + arrow keys
|
||||||
bind = $mainMod, H, movefocus, l
|
bind = $mainMod, H, movefocus, l
|
||||||
bind = $mainMod, J, movefocus, d
|
bind = $mainMod, J, movefocus, d
|
||||||
bind = $mainMod, K, movefocus, u
|
bind = $mainMod, K, movefocus, u
|
||||||
bind = $mainMod, L, movefocus, r
|
bind = $mainMod, L, movefocus, r
|
||||||
|
bind = $mainMod, left, movefocus, l
|
||||||
|
bind = $mainMod, down, movefocus, d
|
||||||
|
bind = $mainMod, up, movefocus, u
|
||||||
|
bind = $mainMod, right, movefocus, r
|
||||||
|
|
||||||
bind = $mainMod SHIFT, H, swapwindow, l
|
bind = $mainMod SHIFT, H, swapwindow, l
|
||||||
bind = $mainMod SHIFT, J, swapwindow, d
|
bind = $mainMod SHIFT, J, swapwindow, d
|
||||||
bind = $mainMod SHIFT, K, swapwindow, u
|
bind = $mainMod SHIFT, K, swapwindow, u
|
||||||
bind = $mainMod SHIFT, L, swapwindow, r
|
bind = $mainMod SHIFT, L, swapwindow, r
|
||||||
|
bind = $mainMod SHIFT, left, swapwindow, l
|
||||||
|
bind = $mainMod SHIFT, down, swapwindow, d
|
||||||
|
bind = $mainMod SHIFT, up, swapwindow, u
|
||||||
|
bind = $mainMod SHIFT, right, swapwindow, r
|
||||||
|
|
||||||
# Switch workspaces with mainMod + [0-9]
|
# Switch workspaces with mainMod + [0-9]
|
||||||
bind = $mainMod, 1, workspace, 1
|
bind = $mainMod, 1, workspace, 1
|
||||||
@@ -242,16 +255,3 @@ bind = $mainMod, mouse_up, workspace, e-1
|
|||||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
bindm = $mainMod, mouse:272, movewindow
|
bindm = $mainMod, mouse:272, movewindow
|
||||||
bindm = $mainMod, mouse:273, resizewindow
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
|
|
||||||
##############################
|
|
||||||
### WINDOWS AND WORKSPACES ###
|
|
||||||
##############################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
|
||||||
|
|
||||||
# Example windowrule v1
|
|
||||||
# windowrule = float, ^(kitty)$
|
|
||||||
|
|
||||||
# Example windowrule v2
|
|
||||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
preload = ~/Pictures/background.png
|
preload = ~/repos/dotfiles/hypr/.config/hypr/assets/background.png
|
||||||
|
|
||||||
|
splash = false
|
||||||
|
|
||||||
#set the default wallpaper(s) seen on initial workspace(s) --depending on the number of monitors used
|
#set the default wallpaper(s) seen on initial workspace(s) --depending on the number of monitors used
|
||||||
wallpaper = DP-1,~/Pictures/background.png
|
wallpaper {
|
||||||
wallpaper = DP-2,~/Pictures/background.png
|
monitor =
|
||||||
wallpaper = DP-3,~/Pictures/background.png
|
path = ~/repos/dotfiles/hypr/.config/hypr/assets/background.png
|
||||||
|
}
|
||||||
|
|
||||||
#enable splash text rendering over the wallpaper
|
#enable splash text rendering over the wallpaper
|
||||||
#splash = true
|
|
||||||
|
|
||||||
#fully disable ipc
|
#fully disable ipc
|
||||||
# ipc = off
|
# ipc = off
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
30
mako/.config/mako/config
Normal file
30
mako/.config/mako/config
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
font=JetBrainsMono Nerd Font 12
|
||||||
|
background-color=#191A1C
|
||||||
|
text-color=#BDBDBD
|
||||||
|
border-color=#39CC9B
|
||||||
|
progress-color=over #39CC9B
|
||||||
|
width=420
|
||||||
|
height=160
|
||||||
|
outer-margin=16
|
||||||
|
margin=12
|
||||||
|
padding=14
|
||||||
|
border-size=1
|
||||||
|
border-radius=7
|
||||||
|
icons=1
|
||||||
|
max-icon-size=48
|
||||||
|
markup=1
|
||||||
|
actions=1
|
||||||
|
max-visible=5
|
||||||
|
max-history=50
|
||||||
|
default-timeout=8000
|
||||||
|
ignore-timeout=0
|
||||||
|
anchor=bottom-right
|
||||||
|
layer=overlay
|
||||||
|
sort=-time
|
||||||
|
|
||||||
|
[urgency=high]
|
||||||
|
border-color=#FF5647
|
||||||
|
default-timeout=0
|
||||||
|
|
||||||
|
[mode=do-not-disturb]
|
||||||
|
invisible=1
|
||||||
@@ -100,6 +100,10 @@ vim.g.have_nerd_font = true
|
|||||||
|
|
||||||
-- Make line numbers default
|
-- Make line numbers default
|
||||||
vim.o.number = true
|
vim.o.number = true
|
||||||
|
vim.o.wrap = true
|
||||||
|
vim.o.linebreak = true
|
||||||
|
vim.o.breakindent = true
|
||||||
|
|
||||||
-- You can also add relative line numbers, to help with jumping.
|
-- You can also add relative line numbers, to help with jumping.
|
||||||
-- Experiment for yourself to see if you like it!
|
-- Experiment for yourself to see if you like it!
|
||||||
vim.o.relativenumber = true
|
vim.o.relativenumber = true
|
||||||
@@ -214,6 +218,8 @@ vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right win
|
|||||||
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
|
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
|
||||||
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
|
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
|
||||||
|
|
||||||
|
require('custom.dotnet').setup()
|
||||||
|
|
||||||
-- NOTE: Some terminals have colliding keymaps or are not able to send distinct keycodes
|
-- NOTE: Some terminals have colliding keymaps or are not able to send distinct keycodes
|
||||||
-- vim.keymap.set("n", "<C-S-h>", "<C-w>H", { desc = "Move window to the left" })
|
-- vim.keymap.set("n", "<C-S-h>", "<C-w>H", { desc = "Move window to the left" })
|
||||||
-- vim.keymap.set("n", "<C-S-l>", "<C-w>L", { desc = "Move window to the right" })
|
-- vim.keymap.set("n", "<C-S-l>", "<C-w>L", { desc = "Move window to the right" })
|
||||||
@@ -719,6 +725,10 @@ require('lazy').setup({
|
|||||||
-- ts_ls = {},
|
-- ts_ls = {},
|
||||||
--
|
--
|
||||||
|
|
||||||
|
marksman = {},
|
||||||
|
dockerls = {},
|
||||||
|
docker_compose_language_service = {},
|
||||||
|
|
||||||
lua_ls = {
|
lua_ls = {
|
||||||
-- cmd = { ... },
|
-- cmd = { ... },
|
||||||
-- filetypes = { ... },
|
-- filetypes = { ... },
|
||||||
@@ -750,6 +760,8 @@ require('lazy').setup({
|
|||||||
-- for you, so that they are available from within Neovim.
|
-- for you, so that they are available from within Neovim.
|
||||||
local ensure_installed = vim.tbl_keys(servers or {})
|
local ensure_installed = vim.tbl_keys(servers or {})
|
||||||
vim.list_extend(ensure_installed, {
|
vim.list_extend(ensure_installed, {
|
||||||
|
'hadolint', -- Used to lint Dockerfiles
|
||||||
|
'markdownlint', -- Used to lint Markdown files
|
||||||
'stylua', -- Used to format Lua code
|
'stylua', -- Used to format Lua code
|
||||||
})
|
})
|
||||||
require('mason-tool-installer').setup { ensure_installed = ensure_installed }
|
require('mason-tool-installer').setup { ensure_installed = ensure_installed }
|
||||||
@@ -855,7 +867,7 @@ require('lazy').setup({
|
|||||||
-- <c-y> to accept ([y]es) the completion.
|
-- <c-y> to accept ([y]es) the completion.
|
||||||
-- This will auto-import if your LSP supports it.
|
-- This will auto-import if your LSP supports it.
|
||||||
-- This will expand snippets if the LSP sent a snippet.
|
-- This will expand snippets if the LSP sent a snippet.
|
||||||
-- 'super-tab' for tab to accept
|
-- 'super-tab' for tab to accept, with Up/Down selecting suggestions.
|
||||||
-- 'enter' for enter to accept
|
-- 'enter' for enter to accept
|
||||||
-- 'none' for no mappings
|
-- 'none' for no mappings
|
||||||
--
|
--
|
||||||
@@ -872,7 +884,7 @@ require('lazy').setup({
|
|||||||
-- <c-k>: Toggle signature help
|
-- <c-k>: Toggle signature help
|
||||||
--
|
--
|
||||||
-- See :h blink-cmp-config-keymap for defining your own keymap
|
-- See :h blink-cmp-config-keymap for defining your own keymap
|
||||||
preset = 'default',
|
preset = 'super-tab',
|
||||||
|
|
||||||
-- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
|
-- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
|
||||||
-- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
|
-- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
|
||||||
|
|||||||
75
nvim/.config/nvim/lua/custom/dotnet.lua
Normal file
75
nvim/.config/nvim/lua/custom/dotnet.lua
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
local dotnet_errorformat = {
|
||||||
|
[[%f(%l\,%c): %trror %m]],
|
||||||
|
[[%f(%l\,%c): %tarning %m]],
|
||||||
|
[[%f(%l): %trror %m]],
|
||||||
|
[[%f(%l): %tarning %m]],
|
||||||
|
[[%f : %trror %m]],
|
||||||
|
[[%f : %tarning %m]],
|
||||||
|
[[%-G%.%#]],
|
||||||
|
}
|
||||||
|
|
||||||
|
function M.configure_buffer()
|
||||||
|
vim.opt_local.makeprg = 'dotnet build'
|
||||||
|
vim.opt_local.errorformat = dotnet_errorformat
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.build(args)
|
||||||
|
M.configure_buffer()
|
||||||
|
|
||||||
|
local command = 'silent make!'
|
||||||
|
if args and args ~= '' then
|
||||||
|
command = command .. ' ' .. args
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.cmd(command)
|
||||||
|
vim.cmd.cwindow()
|
||||||
|
|
||||||
|
local count = #vim.fn.getqflist()
|
||||||
|
if count == 0 then
|
||||||
|
vim.notify('dotnet build finished without quickfix entries', vim.log.levels.INFO)
|
||||||
|
else
|
||||||
|
vim.notify(('dotnet build populated %d quickfix item%s'):format(count, count == 1 and '' or 's'), vim.log.levels.INFO)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.setup()
|
||||||
|
local group = vim.api.nvim_create_augroup('custom-dotnet', { clear = true })
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd('FileType', {
|
||||||
|
group = group,
|
||||||
|
pattern = { 'cs', 'fsharp', 'vb' },
|
||||||
|
callback = M.configure_buffer,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ 'BufReadPost', 'BufNewFile' }, {
|
||||||
|
group = group,
|
||||||
|
pattern = { '*.csproj', '*.fsproj', '*.vbproj', '*.sln', '*.slnx', '*.props', '*.targets' },
|
||||||
|
callback = M.configure_buffer,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command('DotnetBuild', function(opts)
|
||||||
|
M.build(opts.args)
|
||||||
|
end, {
|
||||||
|
nargs = '*',
|
||||||
|
complete = 'file',
|
||||||
|
desc = 'Build the current .NET solution/project into the quickfix list',
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>mb', '<cmd>DotnetBuild<CR>', { desc = '[M]ake dotnet [B]uild' })
|
||||||
|
vim.keymap.set('n', '<leader>mq', '<cmd>copen<CR>', { desc = '[M]ake: Open [Q]uickfix' })
|
||||||
|
vim.keymap.set('n', '<leader>mc', '<cmd>cclose<CR>', { desc = '[M]ake: [C]lose quickfix' })
|
||||||
|
vim.keymap.set('n', ']q', '<cmd>cnext<CR>zz', { desc = 'Next quickfix item' })
|
||||||
|
vim.keymap.set('n', '[q', '<cmd>cprevious<CR>zz', { desc = 'Previous quickfix item' })
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd('FileType', {
|
||||||
|
group = group,
|
||||||
|
pattern = 'qf',
|
||||||
|
callback = function(event)
|
||||||
|
vim.keymap.set('n', 'q', '<cmd>cclose<CR>', { buffer = event.buf, desc = 'Close quickfix' })
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
local fallback_palette = {
|
local fallback_palette = {
|
||||||
bg = '#262626',
|
bg = '#191A1C',
|
||||||
gutter = '#282828',
|
gutter = '#191A1C',
|
||||||
cursor_line = '#202424',
|
cursor_line = '#202424',
|
||||||
selection = '#08335E',
|
selection = '#08335E',
|
||||||
border = '#404040',
|
border = '#404040',
|
||||||
@@ -41,11 +41,11 @@ M.palette = palette
|
|||||||
|
|
||||||
function M.on_colors(colors)
|
function M.on_colors(colors)
|
||||||
colors.bg = palette.bg
|
colors.bg = palette.bg
|
||||||
colors.bg_dark = palette.gutter
|
colors.bg_dark = palette.bg
|
||||||
colors.bg_float = palette.bg
|
colors.bg_float = palette.bg
|
||||||
colors.bg_popup = palette.bg
|
colors.bg_popup = palette.bg
|
||||||
colors.bg_sidebar = palette.gutter
|
colors.bg_sidebar = palette.bg
|
||||||
colors.bg_statusline = palette.gutter
|
colors.bg_statusline = palette.bg
|
||||||
colors.bg_highlight = palette.cursor_line
|
colors.bg_highlight = palette.cursor_line
|
||||||
colors.bg_search = palette.selection
|
colors.bg_search = palette.selection
|
||||||
colors.bg_visual = palette.selection
|
colors.bg_visual = palette.selection
|
||||||
@@ -64,7 +64,7 @@ function M.on_colors(colors)
|
|||||||
colors.red = palette.error
|
colors.red = palette.error
|
||||||
colors.teal = palette.func
|
colors.teal = palette.func
|
||||||
colors.yellow = palette.string
|
colors.yellow = palette.string
|
||||||
colors.terminal_black = palette.gutter
|
colors.terminal_black = palette.bg
|
||||||
end
|
end
|
||||||
|
|
||||||
local function set_many(hl, groups, spec)
|
local function set_many(hl, groups, spec)
|
||||||
|
|||||||
@@ -10,11 +10,12 @@ python3 ~/.config/rider-palette/generate.py
|
|||||||
|
|
||||||
Generated outputs:
|
Generated outputs:
|
||||||
|
|
||||||
- `palette.sh`: shell env vars for prompts and scripts
|
- `palette.sh`: shell env vars plus shared `LS_COLORS` for prompts and scripts
|
||||||
- `palette.css`: CSS variables for Waybar and Wofi
|
- `palette.css`: CSS variables for Waybar and Wofi
|
||||||
- `palette.hyprland.conf`: Hyprlang variables for Hyprland and Hyprlock
|
- `palette.hyprland.conf`: Hyprlang variables for Hyprland and Hyprlock
|
||||||
- `palette.rasi`: Rasi variables for Rofi
|
- `palette.rasi`: Rasi variables for Rofi
|
||||||
- `tmux.conf`: tmux status and pane colors
|
- `tmux.conf`: tmux status and pane colors
|
||||||
|
- `alacritty.toml`: Alacritty color theme
|
||||||
- `bash-prompt.sh`: bash prompt using the shared palette
|
- `bash-prompt.sh`: bash prompt using the shared palette
|
||||||
- `p10k.zsh`: Powerlevel10k overrides using the shared palette
|
- `p10k.zsh`: Powerlevel10k overrides using the shared palette
|
||||||
|
|
||||||
|
|||||||
73
rider-palette/.config/rider-palette/alacritty.toml
Normal file
73
rider-palette/.config/rider-palette/alacritty.toml
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
# Generated from palette.json by generate.py. Do not edit directly.
|
||||||
|
|
||||||
|
[colors.primary]
|
||||||
|
background = "#191A1C"
|
||||||
|
foreground = "#BDBDBD"
|
||||||
|
dim_foreground = "#808080"
|
||||||
|
bright_foreground = "#F0F0F0"
|
||||||
|
|
||||||
|
[colors.cursor]
|
||||||
|
text = "#191A1C"
|
||||||
|
cursor = "#F0F0F0"
|
||||||
|
|
||||||
|
[colors.vi_mode_cursor]
|
||||||
|
text = "#191A1C"
|
||||||
|
cursor = "#6C95EB"
|
||||||
|
|
||||||
|
[colors.selection]
|
||||||
|
text = "#F0F0F0"
|
||||||
|
background = "#08335E"
|
||||||
|
|
||||||
|
[colors.search.matches]
|
||||||
|
foreground = "#F0F0F0"
|
||||||
|
background = "#404040"
|
||||||
|
|
||||||
|
[colors.search.focused_match]
|
||||||
|
foreground = "#191A1C"
|
||||||
|
background = "#39CC9B"
|
||||||
|
|
||||||
|
[colors.hints.start]
|
||||||
|
foreground = "#191A1C"
|
||||||
|
background = "#C9A26D"
|
||||||
|
|
||||||
|
[colors.hints.end]
|
||||||
|
foreground = "#F0F0F0"
|
||||||
|
background = "#202424"
|
||||||
|
|
||||||
|
[colors.line_indicator]
|
||||||
|
foreground = "None"
|
||||||
|
background = "None"
|
||||||
|
|
||||||
|
[colors.footer_bar]
|
||||||
|
foreground = "#F0F0F0"
|
||||||
|
background = "#191A1C"
|
||||||
|
|
||||||
|
[colors.normal]
|
||||||
|
black = "#191A1C"
|
||||||
|
red = "#FF5647"
|
||||||
|
green = "#39CC9B"
|
||||||
|
yellow = "#C9A26D"
|
||||||
|
blue = "#6C95EB"
|
||||||
|
magenta = "#C191FF"
|
||||||
|
cyan = "#66C3CC"
|
||||||
|
white = "#BDBDBD"
|
||||||
|
|
||||||
|
[colors.bright]
|
||||||
|
black = "#404040"
|
||||||
|
red = "#FF5647"
|
||||||
|
green = "#85C46C"
|
||||||
|
yellow = "#C9A26D"
|
||||||
|
blue = "#6C95EB"
|
||||||
|
magenta = "#E1BFFF"
|
||||||
|
cyan = "#66C3CC"
|
||||||
|
white = "#F0F0F0"
|
||||||
|
|
||||||
|
[colors.dim]
|
||||||
|
black = "#202424"
|
||||||
|
red = "#FF5647"
|
||||||
|
green = "#85C46C"
|
||||||
|
yellow = "#C9A26D"
|
||||||
|
blue = "#6C95EB"
|
||||||
|
magenta = "#C191FF"
|
||||||
|
cyan = "#66C3CC"
|
||||||
|
white = "#808080"
|
||||||
@@ -26,7 +26,7 @@ __rider_git_branch() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
__rider_set_bash_prompt() {
|
__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}"
|
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
|
PROMPT_COMMAND=__rider_set_bash_prompt
|
||||||
|
|||||||
@@ -20,6 +20,11 @@ def hex_no_hash(value: str) -> str:
|
|||||||
return value.lstrip("#")
|
return value.lstrip("#")
|
||||||
|
|
||||||
|
|
||||||
|
def hex_to_rgb(value: str) -> tuple[int, int, int]:
|
||||||
|
value = hex_no_hash(value)
|
||||||
|
return tuple(int(value[index:index + 2], 16) for index in (0, 2, 4))
|
||||||
|
|
||||||
|
|
||||||
def camel_from_snake(name: str) -> str:
|
def camel_from_snake(name: str) -> str:
|
||||||
head, *tail = name.split("_")
|
head, *tail = name.split("_")
|
||||||
return head + "".join(part.capitalize() for part in tail)
|
return head + "".join(part.capitalize() for part in tail)
|
||||||
@@ -29,6 +34,82 @@ def write(path: Path, content: str) -> None:
|
|||||||
path.write_text(content.rstrip() + "\n")
|
path.write_text(content.rstrip() + "\n")
|
||||||
|
|
||||||
|
|
||||||
|
def sgr_fg(value: str, *, bold: bool = False) -> str:
|
||||||
|
red, green, blue = hex_to_rgb(value)
|
||||||
|
parts = []
|
||||||
|
if bold:
|
||||||
|
parts.append("1")
|
||||||
|
parts.append(f"38;2;{red};{green};{blue}")
|
||||||
|
return ";".join(parts)
|
||||||
|
|
||||||
|
|
||||||
|
def build_ls_colors(colors: dict[str, str]) -> str:
|
||||||
|
entries = {
|
||||||
|
"no": "0",
|
||||||
|
"fi": "0",
|
||||||
|
"di": sgr_fg(colors["keyword"], bold=True),
|
||||||
|
"ln": sgr_fg(colors["field"], bold=True),
|
||||||
|
"or": sgr_fg(colors["error"]),
|
||||||
|
"mi": "0",
|
||||||
|
"so": sgr_fg(colors["field"]),
|
||||||
|
"pi": sgr_fg(colors["string"]),
|
||||||
|
"do": sgr_fg(colors["func"], bold=True),
|
||||||
|
"bd": sgr_fg(colors["number"]),
|
||||||
|
"cd": sgr_fg(colors["number"]),
|
||||||
|
"su": sgr_fg(colors["error"], bold=True),
|
||||||
|
"sg": sgr_fg(colors["escape"], bold=True),
|
||||||
|
"ex": sgr_fg(colors["func"], bold=True),
|
||||||
|
"*.tar": sgr_fg(colors["type_alt"]),
|
||||||
|
"*.tgz": sgr_fg(colors["type_alt"]),
|
||||||
|
"*.gz": sgr_fg(colors["type_alt"]),
|
||||||
|
"*.bz2": sgr_fg(colors["type_alt"]),
|
||||||
|
"*.xz": sgr_fg(colors["type_alt"]),
|
||||||
|
"*.zip": sgr_fg(colors["type_alt"]),
|
||||||
|
"*.7z": sgr_fg(colors["type_alt"]),
|
||||||
|
"*.zst": sgr_fg(colors["type_alt"]),
|
||||||
|
"*.rar": sgr_fg(colors["type_alt"]),
|
||||||
|
"*.jpg": sgr_fg(colors["type"]),
|
||||||
|
"*.jpeg": sgr_fg(colors["type"]),
|
||||||
|
"*.png": sgr_fg(colors["type"]),
|
||||||
|
"*.gif": sgr_fg(colors["type"]),
|
||||||
|
"*.svg": sgr_fg(colors["type"]),
|
||||||
|
"*.webp": sgr_fg(colors["type"]),
|
||||||
|
"*.mp3": sgr_fg(colors["type"]),
|
||||||
|
"*.flac": sgr_fg(colors["type"]),
|
||||||
|
"*.wav": sgr_fg(colors["type"]),
|
||||||
|
"*.mp4": sgr_fg(colors["type"]),
|
||||||
|
"*.mkv": sgr_fg(colors["type"]),
|
||||||
|
"*.mov": sgr_fg(colors["type"]),
|
||||||
|
"*.pdf": sgr_fg(colors["comment"]),
|
||||||
|
"*.md": sgr_fg(colors["comment"]),
|
||||||
|
"*.txt": sgr_fg(colors["comment"]),
|
||||||
|
"*.log": sgr_fg(colors["comment"]),
|
||||||
|
"*.conf": sgr_fg(colors["string"]),
|
||||||
|
"*.json": sgr_fg(colors["string"]),
|
||||||
|
"*.yaml": sgr_fg(colors["string"]),
|
||||||
|
"*.yml": sgr_fg(colors["string"]),
|
||||||
|
"*.toml": sgr_fg(colors["string"]),
|
||||||
|
"*.ini": sgr_fg(colors["string"]),
|
||||||
|
"*.sh": sgr_fg(colors["func"]),
|
||||||
|
"*.bash": sgr_fg(colors["func"]),
|
||||||
|
"*.zsh": sgr_fg(colors["func"]),
|
||||||
|
"*.py": sgr_fg(colors["field"]),
|
||||||
|
"*.js": sgr_fg(colors["field"]),
|
||||||
|
"*.ts": sgr_fg(colors["field"]),
|
||||||
|
"*.tsx": sgr_fg(colors["field"]),
|
||||||
|
"*.jsx": sgr_fg(colors["field"]),
|
||||||
|
"*.lua": sgr_fg(colors["field"]),
|
||||||
|
"*.rs": sgr_fg(colors["field"]),
|
||||||
|
"*.go": sgr_fg(colors["field"]),
|
||||||
|
"*.c": sgr_fg(colors["field"]),
|
||||||
|
"*.h": sgr_fg(colors["field"]),
|
||||||
|
"*.cpp": sgr_fg(colors["field"]),
|
||||||
|
"*.hpp": sgr_fg(colors["field"]),
|
||||||
|
"*.cs": sgr_fg(colors["field"]),
|
||||||
|
}
|
||||||
|
return ":".join(f"{key}={value}" for key, value in entries.items())
|
||||||
|
|
||||||
|
|
||||||
def render_palette_sh(colors: dict[str, str]) -> str:
|
def render_palette_sh(colors: dict[str, str]) -> str:
|
||||||
lines = [
|
lines = [
|
||||||
"# Generated from palette.json by generate.py. Do not edit directly.",
|
"# Generated from palette.json by generate.py. Do not edit directly.",
|
||||||
@@ -36,18 +117,16 @@ def render_palette_sh(colors: dict[str, str]) -> str:
|
|||||||
]
|
]
|
||||||
for name, value in colors.items():
|
for name, value in colors.items():
|
||||||
lines.append(f'export RIDER_{name.upper()}="{value}"')
|
lines.append(f'export RIDER_{name.upper()}="{value}"')
|
||||||
|
lines.append("")
|
||||||
|
lines.append("# Shared Rider palette for GNU ls and compatible tools.")
|
||||||
|
lines.append(f'export LS_COLORS="{build_ls_colors(colors)}"')
|
||||||
return "\n".join(lines)
|
return "\n".join(lines)
|
||||||
|
|
||||||
|
|
||||||
def render_palette_css(colors: dict[str, str]) -> str:
|
def render_palette_css(colors: dict[str, str]) -> str:
|
||||||
lines = [
|
lines = [
|
||||||
"/* Generated from palette.json by generate.py. Do not edit directly. */",
|
"/* 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():
|
for name, value in colors.items():
|
||||||
lines.append(f"@define-color rider-{name.replace('_', '-')} {value};")
|
lines.append(f"@define-color rider-{name.replace('_', '-')} {value};")
|
||||||
return "\n".join(lines)
|
return "\n".join(lines)
|
||||||
@@ -81,11 +160,17 @@ def render_tmux_conf(colors: dict[str, str]) -> str:
|
|||||||
return dedent(
|
return dedent(
|
||||||
f"""
|
f"""
|
||||||
# Generated from palette.json by generate.py. Do not edit directly.
|
# Generated from palette.json by generate.py. Do not edit directly.
|
||||||
# Source this near the end of ~/.tmux.conf, after plugin/theme setup.
|
# Source this near the end of ~/.tmux.conf.
|
||||||
|
|
||||||
set -g status-style "bg={colors['bg']},fg={colors['fg_bright']}"
|
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-left-style "bg={colors['bg']},fg={colors['fg_bright']}"
|
||||||
set -g status-right-style "bg={colors['bg']},fg={colors['fg_bright']}"
|
set -g status-right-style "bg={colors['bg']},fg={colors['fg_bright']}"
|
||||||
|
set -g status-left-length 48
|
||||||
|
set -g status-right-length 80
|
||||||
|
set -g status-justify centre
|
||||||
|
set -g window-status-separator " "
|
||||||
|
set -g status-left "#[fg={colors['bg']},bg={colors['func']},bold] #S #[fg={colors['func']},bg={colors['bg']}]"
|
||||||
|
set -g status-right "#[fg={colors['field']},bg={colors['bg']}]#[fg={colors['bg']},bg={colors['field']}] %Y-%m-%d #[fg={colors['string']},bg={colors['field']}]#[fg={colors['bg']},bg={colors['string']}] %H:%M#[fg={colors['string']},bg={colors['bg']}]"
|
||||||
|
|
||||||
set -g message-style "bg={colors['cursor_line']},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 message-command-style "bg={colors['cursor_line']},fg={colors['fg_bright']}"
|
||||||
@@ -96,9 +181,89 @@ def render_tmux_conf(colors: dict[str, str]) -> str:
|
|||||||
set -g clock-mode-colour "{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-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-style "bg={colors['bg']},fg={colors['fg_bright']}"
|
||||||
set -g window-status-current-format "#[fg={colors['func']},bg={colors['cursor_line']},bold] #I #W "
|
set -g window-status-current-format "#[fg={colors['func']},bg={colors['bg']}]#[fg={colors['bg']},bg={colors['func']},bold] #I #[fg={colors['func']},bg={colors['border']}]#[fg={colors['fg_bright']},bg={colors['border']}] #W #[fg={colors['border']},bg={colors['bg']}]"
|
||||||
set -g window-status-format "#[fg={colors['fg_gutter']},bg={colors['bg']}] #I #W "
|
set -g window-status-format "#[fg={colors['cursor_line']},bg={colors['bg']}]#[fg={colors['fg_gutter']},bg={colors['cursor_line']}] #I #[fg={colors['cursor_line']},bg={colors['border']}]#[fg={colors['fg_bright']},bg={colors['border']}] #W #[fg={colors['border']},bg={colors['bg']}]"
|
||||||
|
"""
|
||||||
|
).strip()
|
||||||
|
|
||||||
|
|
||||||
|
def render_alacritty_toml(colors: dict[str, str]) -> str:
|
||||||
|
return dedent(
|
||||||
|
f"""
|
||||||
|
# Generated from palette.json by generate.py. Do not edit directly.
|
||||||
|
|
||||||
|
[colors.primary]
|
||||||
|
background = "{colors['bg']}"
|
||||||
|
foreground = "{colors['fg']}"
|
||||||
|
dim_foreground = "{colors['fg_gutter']}"
|
||||||
|
bright_foreground = "{colors['fg_bright']}"
|
||||||
|
|
||||||
|
[colors.cursor]
|
||||||
|
text = "{colors['bg']}"
|
||||||
|
cursor = "{colors['fg_bright']}"
|
||||||
|
|
||||||
|
[colors.vi_mode_cursor]
|
||||||
|
text = "{colors['bg']}"
|
||||||
|
cursor = "{colors['keyword']}"
|
||||||
|
|
||||||
|
[colors.selection]
|
||||||
|
text = "{colors['fg_bright']}"
|
||||||
|
background = "{colors['selection']}"
|
||||||
|
|
||||||
|
[colors.search.matches]
|
||||||
|
foreground = "{colors['fg_bright']}"
|
||||||
|
background = "{colors['border']}"
|
||||||
|
|
||||||
|
[colors.search.focused_match]
|
||||||
|
foreground = "{colors['bg']}"
|
||||||
|
background = "{colors['func']}"
|
||||||
|
|
||||||
|
[colors.hints.start]
|
||||||
|
foreground = "{colors['bg']}"
|
||||||
|
background = "{colors['string']}"
|
||||||
|
|
||||||
|
[colors.hints.end]
|
||||||
|
foreground = "{colors['fg_bright']}"
|
||||||
|
background = "{colors['cursor_line']}"
|
||||||
|
|
||||||
|
[colors.line_indicator]
|
||||||
|
foreground = "None"
|
||||||
|
background = "None"
|
||||||
|
|
||||||
|
[colors.footer_bar]
|
||||||
|
foreground = "{colors['fg_bright']}"
|
||||||
|
background = "{colors['bg']}"
|
||||||
|
|
||||||
|
[colors.normal]
|
||||||
|
black = "{colors['bg']}"
|
||||||
|
red = "{colors['error']}"
|
||||||
|
green = "{colors['func']}"
|
||||||
|
yellow = "{colors['string']}"
|
||||||
|
blue = "{colors['keyword']}"
|
||||||
|
magenta = "{colors['type']}"
|
||||||
|
cyan = "{colors['field']}"
|
||||||
|
white = "{colors['fg']}"
|
||||||
|
|
||||||
|
[colors.bright]
|
||||||
|
black = "{colors['border']}"
|
||||||
|
red = "{colors['error']}"
|
||||||
|
green = "{colors['comment']}"
|
||||||
|
yellow = "{colors['string']}"
|
||||||
|
blue = "{colors['keyword']}"
|
||||||
|
magenta = "{colors['type_alt']}"
|
||||||
|
cyan = "{colors['field']}"
|
||||||
|
white = "{colors['fg_bright']}"
|
||||||
|
|
||||||
|
[colors.dim]
|
||||||
|
black = "{colors['cursor_line']}"
|
||||||
|
red = "{colors['error']}"
|
||||||
|
green = "{colors['comment']}"
|
||||||
|
yellow = "{colors['string']}"
|
||||||
|
blue = "{colors['keyword']}"
|
||||||
|
magenta = "{colors['type']}"
|
||||||
|
cyan = "{colors['field']}"
|
||||||
|
white = "{colors['fg_gutter']}"
|
||||||
"""
|
"""
|
||||||
).strip()
|
).strip()
|
||||||
|
|
||||||
@@ -203,11 +368,12 @@ def render_readme() -> str:
|
|||||||
|
|
||||||
Generated outputs:
|
Generated outputs:
|
||||||
|
|
||||||
- `palette.sh`: shell env vars for prompts and scripts
|
- `palette.sh`: shell env vars plus shared `LS_COLORS` for prompts and scripts
|
||||||
- `palette.css`: CSS variables for Waybar and Wofi
|
- `palette.css`: CSS variables for Waybar and Wofi
|
||||||
- `palette.hyprland.conf`: Hyprlang variables for Hyprland and Hyprlock
|
- `palette.hyprland.conf`: Hyprlang variables for Hyprland and Hyprlock
|
||||||
- `palette.rasi`: Rasi variables for Rofi
|
- `palette.rasi`: Rasi variables for Rofi
|
||||||
- `tmux.conf`: tmux status and pane colors
|
- `tmux.conf`: tmux status and pane colors
|
||||||
|
- `alacritty.toml`: Alacritty color theme
|
||||||
- `bash-prompt.sh`: bash prompt using the shared palette
|
- `bash-prompt.sh`: bash prompt using the shared palette
|
||||||
- `p10k.zsh`: Powerlevel10k overrides using the shared palette
|
- `p10k.zsh`: Powerlevel10k overrides using the shared palette
|
||||||
|
|
||||||
@@ -226,6 +392,7 @@ def main() -> None:
|
|||||||
ROOT / "palette.hyprland.conf": render_palette_hypr(colors),
|
ROOT / "palette.hyprland.conf": render_palette_hypr(colors),
|
||||||
ROOT / "palette.rasi": render_palette_rasi(colors),
|
ROOT / "palette.rasi": render_palette_rasi(colors),
|
||||||
ROOT / "tmux.conf": render_tmux_conf(colors),
|
ROOT / "tmux.conf": render_tmux_conf(colors),
|
||||||
|
ROOT / "alacritty.toml": render_alacritty_toml(colors),
|
||||||
ROOT / "bash-prompt.sh": render_bash_prompt(),
|
ROOT / "bash-prompt.sh": render_bash_prompt(),
|
||||||
ROOT / "p10k.zsh": render_p10k_zsh(),
|
ROOT / "p10k.zsh": render_p10k_zsh(),
|
||||||
ROOT / "README.md": render_readme(),
|
ROOT / "README.md": render_readme(),
|
||||||
|
|||||||
@@ -1,27 +1,6 @@
|
|||||||
/* Generated from palette.json by generate.py. Do not edit directly. */
|
/* Generated from palette.json by generate.py. Do not edit directly. */
|
||||||
:root {
|
@define-color rider-bg #191A1C;
|
||||||
--rider-bg: #262626;
|
@define-color rider-gutter #191A1C;
|
||||||
--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-cursor-line #202424;
|
||||||
@define-color rider-selection #08335E;
|
@define-color rider-selection #08335E;
|
||||||
@define-color rider-border #404040;
|
@define-color rider-border #404040;
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
# Usage:
|
# Usage:
|
||||||
# source = ~/.config/rider-palette/palette.hyprland.conf
|
# source = ~/.config/rider-palette/palette.hyprland.conf
|
||||||
|
|
||||||
$bg = rgb(262626)
|
$bg = rgb(191A1C)
|
||||||
$bgAlpha = 262626
|
$bgAlpha = 191A1C
|
||||||
$gutter = rgb(282828)
|
$gutter = rgb(191A1C)
|
||||||
$gutterAlpha = 282828
|
$gutterAlpha = 191A1C
|
||||||
$cursor_line = rgb(202424)
|
$cursor_line = rgb(202424)
|
||||||
$cursorLineAlpha = 202424
|
$cursorLineAlpha = 202424
|
||||||
$selection = rgb(08335E)
|
$selection = rgb(08335E)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "rider-black",
|
"name": "rider-black",
|
||||||
"colors": {
|
"colors": {
|
||||||
"bg": "#262626",
|
"bg": "#191A1C",
|
||||||
"gutter": "#282828",
|
"gutter": "#191A1C",
|
||||||
"cursor_line": "#202424",
|
"cursor_line": "#202424",
|
||||||
"selection": "#08335E",
|
"selection": "#08335E",
|
||||||
"border": "#404040",
|
"border": "#404040",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* Generated from palette.json by generate.py. Do not edit directly. */
|
/* Generated from palette.json by generate.py. Do not edit directly. */
|
||||||
* {
|
* {
|
||||||
rider-bg: #262626;
|
rider-bg: #191A1C;
|
||||||
rider-gutter: #282828;
|
rider-gutter: #191A1C;
|
||||||
rider-cursor-line: #202424;
|
rider-cursor-line: #202424;
|
||||||
rider-selection: #08335E;
|
rider-selection: #08335E;
|
||||||
rider-border: #404040;
|
rider-border: #404040;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Generated from palette.json by generate.py. Do not edit directly.
|
# Generated from palette.json by generate.py. Do not edit directly.
|
||||||
|
|
||||||
export RIDER_BG="#262626"
|
export RIDER_BG="#191A1C"
|
||||||
export RIDER_GUTTER="#282828"
|
export RIDER_GUTTER="#191A1C"
|
||||||
export RIDER_CURSOR_LINE="#202424"
|
export RIDER_CURSOR_LINE="#202424"
|
||||||
export RIDER_SELECTION="#08335E"
|
export RIDER_SELECTION="#08335E"
|
||||||
export RIDER_BORDER="#404040"
|
export RIDER_BORDER="#404040"
|
||||||
@@ -18,3 +18,6 @@ export RIDER_STRING="#C9A26D"
|
|||||||
export RIDER_NUMBER="#ED94C0"
|
export RIDER_NUMBER="#ED94C0"
|
||||||
export RIDER_ESCAPE="#D688D4"
|
export RIDER_ESCAPE="#D688D4"
|
||||||
export RIDER_ERROR="#FF5647"
|
export RIDER_ERROR="#FF5647"
|
||||||
|
|
||||||
|
# Shared Rider palette for GNU ls and compatible tools.
|
||||||
|
export LS_COLORS="no=0:fi=0:di=1;38;2;108;149;235:ln=1;38;2;102;195;204:or=38;2;255;86;71:mi=0:so=38;2;102;195;204:pi=38;2;201;162;109:do=1;38;2;57;204;155:bd=38;2;237;148;192:cd=38;2;237;148;192:su=1;38;2;255;86;71:sg=1;38;2;214;136;212:ex=1;38;2;57;204;155:*.tar=38;2;225;191;255:*.tgz=38;2;225;191;255:*.gz=38;2;225;191;255:*.bz2=38;2;225;191;255:*.xz=38;2;225;191;255:*.zip=38;2;225;191;255:*.7z=38;2;225;191;255:*.zst=38;2;225;191;255:*.rar=38;2;225;191;255:*.jpg=38;2;193;145;255:*.jpeg=38;2;193;145;255:*.png=38;2;193;145;255:*.gif=38;2;193;145;255:*.svg=38;2;193;145;255:*.webp=38;2;193;145;255:*.mp3=38;2;193;145;255:*.flac=38;2;193;145;255:*.wav=38;2;193;145;255:*.mp4=38;2;193;145;255:*.mkv=38;2;193;145;255:*.mov=38;2;193;145;255:*.pdf=38;2;133;196;108:*.md=38;2;133;196;108:*.txt=38;2;133;196;108:*.log=38;2;133;196;108:*.conf=38;2;201;162;109:*.json=38;2;201;162;109:*.yaml=38;2;201;162;109:*.yml=38;2;201;162;109:*.toml=38;2;201;162;109:*.ini=38;2;201;162;109:*.sh=38;2;57;204;155:*.bash=38;2;57;204;155:*.zsh=38;2;57;204;155:*.py=38;2;102;195;204:*.js=38;2;102;195;204:*.ts=38;2;102;195;204:*.tsx=38;2;102;195;204:*.jsx=38;2;102;195;204:*.lua=38;2;102;195;204:*.rs=38;2;102;195;204:*.go=38;2;102;195;204:*.c=38;2;102;195;204:*.h=38;2;102;195;204:*.cpp=38;2;102;195;204:*.hpp=38;2;102;195;204:*.cs=38;2;102;195;204"
|
||||||
|
|||||||
@@ -1,19 +1,23 @@
|
|||||||
# Generated from palette.json by generate.py. Do not edit directly.
|
# Generated from palette.json by generate.py. Do not edit directly.
|
||||||
# Source this near the end of ~/.tmux.conf, after plugin/theme setup.
|
# Source this near the end of ~/.tmux.conf.
|
||||||
|
|
||||||
set -g status-style "bg=#262626,fg=#F0F0F0"
|
set -g status-style "bg=#191A1C,fg=#F0F0F0"
|
||||||
set -g status-left-style "bg=#262626,fg=#F0F0F0"
|
set -g status-left-length 80
|
||||||
set -g status-right-style "bg=#262626,fg=#F0F0F0"
|
set -g status-right-length 80
|
||||||
|
set -g status-justify centre
|
||||||
|
set -g window-status-separator " "
|
||||||
|
set -g status-left "#[fg=#191A1C,bg=#39CC9B,bold] #S #[fg=#39CC9B,bg=#191A1C]"
|
||||||
|
set -g status-right "#[fg=#66C3CC,bg=#191A1C]#[fg=#191A1C,bg=#66C3CC] %Y-%m-%d #[fg=#C9A26D,bg=#66C3CC]#[fg=#191A1C,bg=#C9A26D] %H:%M#[fg=#C9A26D,bg=#191A1C]"
|
||||||
|
|
||||||
set -g message-style "bg=#202424,fg=#F0F0F0"
|
set -g message-style "bg=#202424,fg=#F0F0F0"
|
||||||
set -g message-command-style "bg=#202424,fg=#F0F0F0"
|
set -g message-command-style "bg=#202424,fg=#F0F0F0"
|
||||||
set -g mode-style "bg=#08335E,fg=#F0F0F0"
|
set -g mode-style "bg=#08335E"
|
||||||
|
|
||||||
set -g pane-border-style "fg=#404040"
|
set -g pane-border-style "fg=#404040"
|
||||||
set -g pane-active-border-style "fg=#6C95EB"
|
set -g pane-active-border-style "fg=#6C95EB"
|
||||||
set -g clock-mode-colour "#6C95EB"
|
set -g clock-mode-colour "#6C95EB"
|
||||||
|
|
||||||
set -g window-status-style "bg=#262626,fg=#808080"
|
set -g window-status-style "bg=#191A1C,fg=#808080"
|
||||||
set -g window-status-current-style "bg=#202424,fg=#F0F0F0"
|
set -g window-status-current-style "bg=#191A1C,fg=#F0F0F0"
|
||||||
set -g window-status-current-format "#[fg=#39CC9B,bg=#202424,bold] #I #W "
|
set -g window-status-current-format "#[fg=#39CC9B,bg=#191A1C]#[fg=#191A1C,bg=#39CC9B,bold] #I #[fg=#39CC9B,bg=#404040]#[fg=#F0F0F0,bg=#404040] #W #[fg=#404040,bg=#191A1C]"
|
||||||
set -g window-status-format "#[fg=#808080,bg=#262626] #I #W "
|
set -g window-status-format "#[fg=#202424,bg=#191A1C]#[fg=#808080,bg=#202424] #I #[fg=#202424,bg=#404040]#[fg=#F0F0F0,bg=#404040] #W #[fg=#404040,bg=#191A1C]"
|
||||||
|
|||||||
@@ -11,6 +11,10 @@ set -g default-terminal "tmux-256color"
|
|||||||
set -g base-index 1
|
set -g base-index 1
|
||||||
set -g pane-base-index 1
|
set -g pane-base-index 1
|
||||||
set -g renumber-windows on
|
set -g renumber-windows on
|
||||||
|
set -g status-position top
|
||||||
|
|
||||||
|
unbind =
|
||||||
|
bind = select-layout -E
|
||||||
|
|
||||||
# using vim motions
|
# using vim motions
|
||||||
bind-key h select-pane -L
|
bind-key h select-pane -L
|
||||||
@@ -18,6 +22,12 @@ 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
|
||||||
|
|
||||||
|
# resize panes
|
||||||
|
bind -r H resize-pane -L
|
||||||
|
bind -r J resize-pane -D
|
||||||
|
bind -r K resize-pane -U
|
||||||
|
bind -r L resize-pane -R
|
||||||
|
|
||||||
# Split panes in the same directory
|
# Split panes in the same directory
|
||||||
bind '"' split-window -v -c "#{pane_current_path}"
|
bind '"' split-window -v -c "#{pane_current_path}"
|
||||||
bind % split-window -h -c "#{pane_current_path}"
|
bind % split-window -h -c "#{pane_current_path}"
|
||||||
@@ -25,26 +35,5 @@ bind % split-window -h -c "#{pane_current_path}"
|
|||||||
# New window in same directory
|
# New window in same directory
|
||||||
bind c new-window -c "#{pane_current_path}"
|
bind c new-window -c "#{pane_current_path}"
|
||||||
|
|
||||||
# list of plugins
|
|
||||||
set -g @plugin 'tmux-plugins/tpm'
|
|
||||||
# set -g @plugin '2kabhishek/tmux2k'
|
|
||||||
set -g @plugin 'catppuccin/tmux'
|
|
||||||
|
|
||||||
set-option -g status-position top
|
|
||||||
set -g @catppuccin_flavor 'mocha' # latte, frappe, macchiato or mocha
|
|
||||||
set -g @catppuccin_window_status_style "rounded"
|
|
||||||
|
|
||||||
# configure theme
|
|
||||||
# set -g @tmux2k-theme 'catppuccin'
|
|
||||||
# set -g @tmux2k-theme 'onedark'
|
|
||||||
# set -g @tmux2k-icons-only true
|
|
||||||
|
|
||||||
# Use window name instead of pane title
|
|
||||||
set -g @catppuccin_window_text "#W"
|
|
||||||
set -g @catppuccin_window_current_text "#W"
|
|
||||||
|
|
||||||
# initialize TMUX plugin manager
|
|
||||||
run '~/.tmux/plugins/tpm/tpm'
|
|
||||||
|
|
||||||
# Shared Rider palette overrides
|
# Shared Rider palette overrides
|
||||||
source-file ~/.config/rider-palette/tmux.conf
|
source-file ~/.config/rider-palette/tmux.conf
|
||||||
|
|||||||
@@ -1,50 +1,55 @@
|
|||||||
{
|
{
|
||||||
"layer": "top",
|
"layer": "bottom",
|
||||||
"position": "top",
|
"position": "bottom",
|
||||||
"mod": "dock",
|
"mod": "dock",
|
||||||
"margin-left": 10,
|
"margin-left": 0,
|
||||||
"margin-right": 10,
|
"margin-right": 0,
|
||||||
"margin-top": 10,
|
"margin-top": 0,
|
||||||
"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": [
|
||||||
"custom/launcher",
|
"hyprland/workspaces"
|
||||||
"hyprland/workspaces",
|
|
||||||
"hyprland/window"
|
|
||||||
],
|
],
|
||||||
"modules-center": [
|
"modules-center": [
|
||||||
"clock"
|
"clock"
|
||||||
],
|
],
|
||||||
"modules-right": [
|
"modules-right": [
|
||||||
|
"tray",
|
||||||
|
"custom/print-queue",
|
||||||
"network",
|
"network",
|
||||||
"bluetooth",
|
"bluetooth",
|
||||||
"pulseaudio",
|
"pulseaudio",
|
||||||
"cpu",
|
"battery",
|
||||||
"memory",
|
"custom/mako",
|
||||||
"tray",
|
|
||||||
"custom/power"
|
"custom/power"
|
||||||
],
|
],
|
||||||
"custom/launcher": {
|
"battery": {
|
||||||
"format": "",
|
"states": {
|
||||||
"tooltip": true,
|
"warning": 30,
|
||||||
"tooltip-format": "Open Walker",
|
"critical": 15
|
||||||
"on-click": "walker",
|
},
|
||||||
"on-click-right": "thunar"
|
"format": "{icon} {capacity}%",
|
||||||
},
|
"format-charging": " {capacity}%",
|
||||||
"memory": {
|
"format-plugged": " {capacity}%",
|
||||||
"interval": 5,
|
"format-full": " 100%",
|
||||||
"format": " {}%"
|
"format-icons": [
|
||||||
},
|
"",
|
||||||
"cpu": {
|
"",
|
||||||
"interval": 5,
|
"",
|
||||||
"format": " {usage}%"
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"interval": 10,
|
||||||
|
"tooltip": true
|
||||||
},
|
},
|
||||||
"tray": {
|
"tray": {
|
||||||
"icon-size": 18,
|
"icon-size": 22,
|
||||||
"spacing": 6,
|
"spacing": 14,
|
||||||
"rotate": 0
|
"rotate": 0
|
||||||
},
|
},
|
||||||
"custom/power": {
|
"custom/power": {
|
||||||
@@ -61,26 +66,27 @@
|
|||||||
"lock": "hyprlock"
|
"lock": "hyprlock"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"custom/print-queue": {
|
||||||
|
"exec": "$HOME/.config/waybar/scripts/print-queue.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 10,
|
||||||
|
"format": "{}",
|
||||||
|
"tooltip": true,
|
||||||
|
"on-click": "$HOME/.config/waybar/scripts/print-queue-view.sh"
|
||||||
|
},
|
||||||
|
"custom/mako": {
|
||||||
|
"exec": "$HOME/.config/waybar/scripts/mako-notifications.sh status",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 5,
|
||||||
|
"signal": 8,
|
||||||
|
"format": "{}",
|
||||||
|
"tooltip": true,
|
||||||
|
"on-click": "$HOME/.config/waybar/scripts/mako-notifications.sh toggle",
|
||||||
|
"on-click-right": "$HOME/.config/waybar/scripts/mako-notifications.sh list"
|
||||||
|
},
|
||||||
"hyprland/workspaces": {
|
"hyprland/workspaces": {
|
||||||
"all-outputs": false,
|
"all-outputs": false,
|
||||||
"sort-by-number": true,
|
"sort-by-number": true
|
||||||
"format": "{icon}",
|
|
||||||
"format-icons": {
|
|
||||||
"1": "",
|
|
||||||
"2": "",
|
|
||||||
"3": "",
|
|
||||||
"4": "",
|
|
||||||
"5": "",
|
|
||||||
"6": "",
|
|
||||||
"7": "",
|
|
||||||
"8": "",
|
|
||||||
"9": "",
|
|
||||||
"10": "",
|
|
||||||
"urgent": "",
|
|
||||||
"active": "",
|
|
||||||
"default": "",
|
|
||||||
"empty": ""
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"hyprland/window": {
|
"hyprland/window": {
|
||||||
"separate-outputs": true,
|
"separate-outputs": true,
|
||||||
@@ -91,9 +97,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"clock": {
|
"clock": {
|
||||||
"format": " {:%a %d %b} {:%H:%M}",
|
"format": "{:%A %R}",
|
||||||
"rotate": 0,
|
"rotate": 0,
|
||||||
"on-click": "walker",
|
|
||||||
"tooltip-format": "<tt>{calendar}</tt>",
|
"tooltip-format": "<tt>{calendar}</tt>",
|
||||||
"calendar": {
|
"calendar": {
|
||||||
"mode": "year",
|
"mode": "year",
|
||||||
|
|||||||
@@ -1,51 +1,81 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<interface>
|
<interface>
|
||||||
<object class="GtkMenu" id="menu">
|
<object class="GtkMenu" id="menu">
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="section-session">
|
||||||
|
<property name="label">Session</property>
|
||||||
|
<property name="sensitive">False</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<style>
|
||||||
|
<class name="section-header"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
<!-- Session controls -->
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkMenuItem" id="lock">
|
<object class="GtkMenuItem" id="lock">
|
||||||
<property name="label"> Lock</property>
|
<property name="label"> Lock</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkMenuItem" id="logout">
|
<object class="GtkMenuItem" id="logout">
|
||||||
<property name="label"> Logout</property>
|
<property name="label"> Log Out</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSeparatorMenuItem" id="sep1" />
|
<object class="GtkSeparatorMenuItem" id="sep1"/>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="section-sleep">
|
||||||
|
<property name="label">Sleep</property>
|
||||||
|
<property name="sensitive">False</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<style>
|
||||||
|
<class name="section-header"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<!-- Power controls -->
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkMenuItem" id="suspend">
|
<object class="GtkMenuItem" id="suspend">
|
||||||
<property name="label"> Suspend</property>
|
<property name="label"> Suspend</property>
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkMenuItem" id="hibernate">
|
|
||||||
<property name="label">⏾ Hibernate</property>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSeparatorMenuItem" id="sep2" />
|
<object class="GtkMenuItem" id="hibernate">
|
||||||
|
<property name="label"> Hibernate</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkSeparatorMenuItem" id="sep2"/>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="section-power">
|
||||||
|
<property name="label">Power</property>
|
||||||
|
<property name="sensitive">False</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<style>
|
||||||
|
<class name="section-header"/>
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="reboot">
|
||||||
|
<property name="label"> Reboot</property>
|
||||||
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkMenuItem" id="shutdown">
|
<object class="GtkMenuItem" id="shutdown">
|
||||||
<property name="label">⏻ Shutdown</property>
|
<property name="label"> Shut Down</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
|
||||||
<object class="GtkMenuItem" id="reboot">
|
|
||||||
<property name="label"> Reboot</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
</object>
|
</object>
|
||||||
|
|
||||||
</interface>
|
</interface>
|
||||||
|
|||||||
135
waybar/.config/waybar/scripts/mako-notifications.sh
Executable file
135
waybar/.config/waybar/scripts/mako-notifications.sh
Executable file
@@ -0,0 +1,135 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
dnd_mode="do-not-disturb"
|
||||||
|
|
||||||
|
json_string() {
|
||||||
|
if command -v jq >/dev/null 2>&1; then
|
||||||
|
printf '%s' "$1" | jq -Rs .
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf '%s' "$1" | awk '
|
||||||
|
BEGIN { ORS = "" }
|
||||||
|
{
|
||||||
|
gsub(/\\/, "\\\\")
|
||||||
|
gsub(/"/, "\\\"")
|
||||||
|
gsub(/\t/, "\\t")
|
||||||
|
if (NR > 1) {
|
||||||
|
printf "\\n"
|
||||||
|
}
|
||||||
|
printf "%s", $0
|
||||||
|
}
|
||||||
|
END { printf "\n" }
|
||||||
|
'
|
||||||
|
}
|
||||||
|
|
||||||
|
refresh_waybar() {
|
||||||
|
pkill -RTMIN+8 waybar >/dev/null 2>&1 || true
|
||||||
|
}
|
||||||
|
|
||||||
|
notification_count() {
|
||||||
|
if ! command -v jq >/dev/null 2>&1; then
|
||||||
|
printf '0'
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
makoctl list -j 2>/dev/null \
|
||||||
|
| jq '[.. | objects | select(has("id"))] | length' 2>/dev/null \
|
||||||
|
|| printf '0'
|
||||||
|
}
|
||||||
|
|
||||||
|
is_dnd() {
|
||||||
|
makoctl mode 2>/dev/null | grep -qx "$dnd_mode"
|
||||||
|
}
|
||||||
|
|
||||||
|
status() {
|
||||||
|
if ! modes="$(makoctl mode 2>/dev/null)"; then
|
||||||
|
text="$(json_string " n/a")"
|
||||||
|
class="$(json_string "disabled")"
|
||||||
|
tooltip="$(json_string "Mako is unavailable")"
|
||||||
|
printf '{"text":%s,"class":%s,"tooltip":%s}\n' "$text" "$class" "$tooltip"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
count="$(notification_count)"
|
||||||
|
count="${count:-0}"
|
||||||
|
|
||||||
|
if printf '%s\n' "$modes" | grep -qx "$dnd_mode"; then
|
||||||
|
state="dnd"
|
||||||
|
icon=""
|
||||||
|
label="Do Not Disturb is on"
|
||||||
|
elif [ "$count" -gt 0 ] 2>/dev/null; then
|
||||||
|
state="active"
|
||||||
|
icon=""
|
||||||
|
label="Do Not Disturb is off"
|
||||||
|
else
|
||||||
|
state="normal"
|
||||||
|
icon=""
|
||||||
|
label="Do Not Disturb is off"
|
||||||
|
fi
|
||||||
|
|
||||||
|
text="$(json_string "$icon $count")"
|
||||||
|
class="$(json_string "$state")"
|
||||||
|
tooltip="$(json_string "$label
|
||||||
|
$count pending notifications
|
||||||
|
Left click toggles DND
|
||||||
|
Right click opens the notification list")"
|
||||||
|
|
||||||
|
printf '{"text":%s,"class":%s,"tooltip":%s}\n' "$text" "$class" "$tooltip"
|
||||||
|
}
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
makoctl mode -t "$dnd_mode" >/dev/null 2>&1 || true
|
||||||
|
refresh_waybar
|
||||||
|
}
|
||||||
|
|
||||||
|
list_notifications() {
|
||||||
|
title="Notifications"
|
||||||
|
|
||||||
|
if command -v jq >/dev/null 2>&1; then
|
||||||
|
list="$(
|
||||||
|
makoctl list -j 2>/dev/null \
|
||||||
|
| jq -r '
|
||||||
|
[.. | objects | select(has("id"))]
|
||||||
|
| if length == 0 then
|
||||||
|
"No pending notifications"
|
||||||
|
else
|
||||||
|
.[]
|
||||||
|
| [
|
||||||
|
(."app-name" // .app_name // "app"),
|
||||||
|
(.summary // ""),
|
||||||
|
(.body // "")
|
||||||
|
]
|
||||||
|
| map(select(. != ""))
|
||||||
|
| join(" - ")
|
||||||
|
end
|
||||||
|
' 2>/dev/null
|
||||||
|
)"
|
||||||
|
else
|
||||||
|
list="$(makoctl list 2>/dev/null || printf 'No pending notifications')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$list" ]; then
|
||||||
|
list="No pending notifications"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v wofi >/dev/null 2>&1; then
|
||||||
|
printf '%s\n' "$list" | wofi --dmenu --prompt "$title" >/dev/null 2>&1 || true
|
||||||
|
elif command -v alacritty >/dev/null 2>&1; then
|
||||||
|
tmp="${TMPDIR:-/tmp}/mako-notifications.$$"
|
||||||
|
printf '%s\n' "$list" > "$tmp"
|
||||||
|
alacritty -e sh -c 'printf "%s\n\n" "$1"; cat "$2"; printf "\nPress Enter to close."; read -r _' sh "$title" "$tmp"
|
||||||
|
rm -f "$tmp"
|
||||||
|
else
|
||||||
|
printf '%s\n' "$list"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "${1:-status}" in
|
||||||
|
status) status ;;
|
||||||
|
toggle) toggle ;;
|
||||||
|
list) list_notifications ;;
|
||||||
|
*) status ;;
|
||||||
|
esac
|
||||||
30
waybar/.config/waybar/scripts/print-queue-view.sh
Executable file
30
waybar/.config/waybar/scripts/print-queue-view.sh
Executable file
@@ -0,0 +1,30 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
if command -v system-config-printer >/dev/null 2>&1; then
|
||||||
|
exec system-config-printer
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v alacritty >/dev/null 2>&1; then
|
||||||
|
exec alacritty -e sh -lc '
|
||||||
|
while :; do
|
||||||
|
clear
|
||||||
|
printf "Print Queue\n"
|
||||||
|
printf "===========\n\n"
|
||||||
|
|
||||||
|
if ! lpstat -r >/dev/null 2>&1; then
|
||||||
|
printf "CUPS scheduler is not running.\n"
|
||||||
|
else
|
||||||
|
if ! lpstat -o 2>/dev/null | sed "/^[[:space:]]*$/d" | grep . >/dev/null 2>&1; then
|
||||||
|
printf "No print jobs queued.\n"
|
||||||
|
else
|
||||||
|
lpstat -o
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\nRefreshing every 3 seconds. Press Ctrl+C to close."
|
||||||
|
sleep 3
|
||||||
|
done
|
||||||
|
'
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec xdg-open http://localhost:631/jobs/
|
||||||
24
waybar/.config/waybar/scripts/print-queue.sh
Executable file
24
waybar/.config/waybar/scripts/print-queue.sh
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
jobs_output="$(lpstat -o 2>/dev/null)"
|
||||||
|
status=$?
|
||||||
|
|
||||||
|
if [ "$status" -ne 0 ]; then
|
||||||
|
printf '%s\n' '{"text":" n/a","class":"disabled","tooltip":"CUPS is unavailable"}'
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$jobs_output" ]; then
|
||||||
|
printf '%s\n' '{"text":"","class":"idle","tooltip":"No print jobs queued"}'
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
job_count="$(printf '%s\n' "$jobs_output" | sed '/^[[:space:]]*$/d' | wc -l | tr -d ' ')"
|
||||||
|
|
||||||
|
if [ "$job_count" = "1" ]; then
|
||||||
|
tooltip="1 print job queued"
|
||||||
|
else
|
||||||
|
tooltip="$job_count print jobs queued"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf '{"text":" %s","class":"active","tooltip":"%s"}\n' "$job_count" "$tooltip"
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
@import url("../rider-palette/palette.css");
|
@import url("../rider-palette/palette.css");
|
||||||
|
|
||||||
@define-color foreground @rider-fg-bright;
|
@define-color foreground @rider-fg;
|
||||||
@define-color foreground-muted @rider-fg-gutter;
|
@define-color foreground-muted @rider-fg-gutter;
|
||||||
@define-color background @rider-bg;
|
@define-color background @rider-bg;
|
||||||
@define-color background-alt @rider-cursor-line;
|
@define-color background-alt @rider-cursor-line;
|
||||||
@@ -11,22 +11,29 @@
|
|||||||
@define-color warning @rider-string;
|
@define-color warning @rider-string;
|
||||||
@define-color danger @rider-error;
|
@define-color danger @rider-error;
|
||||||
|
|
||||||
|
/* font-family: 'JetBrainsMono Nerd Font Mono';*/
|
||||||
* {
|
* {
|
||||||
color: @foreground;
|
color: @foreground;
|
||||||
font-family: 'JetBrainsMono Nerd Font Mono';
|
font-family: 'JetBrainsMono Nerd Font';
|
||||||
font-size: 15px;
|
font-size: 17px;
|
||||||
min-height: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window#waybar {
|
window#waybar {
|
||||||
background: transparent;
|
background: @background;
|
||||||
|
border-top: 1px solid alpha(@foreground, 0.28);
|
||||||
|
border-radius: 0px;
|
||||||
|
box-shadow: none;
|
||||||
color: @foreground;
|
color: @foreground;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
window#waybar>box {
|
||||||
|
padding: 4px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
tooltip {
|
tooltip {
|
||||||
background: @background;
|
background: @background;
|
||||||
border: 1px solid @accent-alt;
|
border: 1px solid @accent-alt;
|
||||||
border-radius: 12px;
|
border-radius: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modules-left,
|
.modules-left,
|
||||||
@@ -39,27 +46,50 @@ tooltip {
|
|||||||
#workspaces,
|
#workspaces,
|
||||||
#window,
|
#window,
|
||||||
#clock,
|
#clock,
|
||||||
|
#custom-print-queue,
|
||||||
#network,
|
#network,
|
||||||
#bluetooth,
|
#bluetooth,
|
||||||
#pulseaudio,
|
#pulseaudio,
|
||||||
#cpu,
|
#battery,
|
||||||
#memory,
|
#custom-mako,
|
||||||
#tray,
|
#tray,
|
||||||
#custom-power {
|
#custom-power {
|
||||||
background: @background;
|
background: transparent;
|
||||||
border: 1px solid alpha(@accent-alt, 0.22);
|
border: none;
|
||||||
border-radius: 14px;
|
border-left: 1px solid alpha(@foreground, 0.18);
|
||||||
margin: 0 5px;
|
border-radius: 0;
|
||||||
|
box-shadow: none;
|
||||||
|
margin: 0;
|
||||||
padding: 0 12px;
|
padding: 0 12px;
|
||||||
min-height: 34px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-launcher {
|
#custom-launcher,
|
||||||
background: @accent;
|
#workspaces,
|
||||||
border-color: @accent;
|
#clock,
|
||||||
color: @background;
|
#custom-print-queue,
|
||||||
font-size: 18px;
|
#tray {
|
||||||
padding: 0 14px 0 12px;
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#bluetooth,
|
||||||
|
#pulseaudio {
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-print-queue {
|
||||||
|
padding: 0 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
padding: 0 7px 0 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#bluetooth {
|
||||||
|
padding: 0 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
padding: 0 12px 0 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces {
|
#workspaces {
|
||||||
@@ -68,14 +98,19 @@ tooltip {
|
|||||||
|
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
all: initial;
|
all: initial;
|
||||||
min-width: 18px;
|
min-width: 29px;
|
||||||
padding: 0 8px;
|
padding: 0 5px;
|
||||||
margin: 5px 2px;
|
margin: 2px 2px;
|
||||||
border-radius: 10px;
|
border-radius: 7px;
|
||||||
color: @foreground-muted;
|
|
||||||
opacity: 0.9;
|
opacity: 0.9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#workspaces button label {
|
||||||
|
color: inherit;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
#workspaces button.empty {
|
#workspaces button.empty {
|
||||||
color: @foreground-muted;
|
color: @foreground-muted;
|
||||||
opacity: 0.45;
|
opacity: 0.45;
|
||||||
@@ -87,38 +122,32 @@ tooltip {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.active {
|
#workspaces button.active {
|
||||||
color: @background;
|
color: @accent;
|
||||||
background: @accent;
|
background: alpha(@accent, 0.16);
|
||||||
opacity: 1;
|
}
|
||||||
|
|
||||||
|
#workspaces button.active label {
|
||||||
|
color: @accent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
color: @foreground;
|
||||||
|
background: alpha(@danger, 0.26);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent label {
|
||||||
|
color: @foreground;
|
||||||
}
|
}
|
||||||
|
|
||||||
#window {
|
#window {
|
||||||
color: @foreground-muted;
|
color: @foreground-muted;
|
||||||
padding-right: 16px;
|
padding: 0 17px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#clock {
|
#clock {
|
||||||
border-color: alpha(@accent, 0.35);
|
|
||||||
color: @foreground;
|
|
||||||
font-weight: 700;
|
|
||||||
padding: 0 18px;
|
padding: 0 18px;
|
||||||
}
|
box-shadow: none;
|
||||||
|
border: none;
|
||||||
#network {
|
|
||||||
color: @accent-soft;
|
|
||||||
}
|
|
||||||
|
|
||||||
#bluetooth {
|
|
||||||
color: @type;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pulseaudio {
|
|
||||||
color: @accent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#cpu,
|
|
||||||
#memory {
|
|
||||||
color: @warning;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#tray {
|
#tray {
|
||||||
@@ -126,29 +155,88 @@ tooltip {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#custom-power {
|
#custom-power {
|
||||||
color: @danger;
|
padding: 0px 19px 0px 14px;
|
||||||
padding: 0 13px;
|
}
|
||||||
|
|
||||||
|
#custom-mako {
|
||||||
|
min-width: 42px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-mako.active {
|
||||||
|
color: @accent;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-launcher:hover,
|
#custom-launcher:hover,
|
||||||
#workspaces button:hover,
|
#workspaces button:hover,
|
||||||
#network:hover,
|
#network:hover,
|
||||||
|
#custom-print-queue:hover,
|
||||||
#bluetooth:hover,
|
#bluetooth:hover,
|
||||||
#pulseaudio:hover,
|
#pulseaudio:hover,
|
||||||
#cpu:hover,
|
#battery:hover,
|
||||||
#memory:hover,
|
#custom-mako:hover,
|
||||||
#tray:hover,
|
#tray:hover,
|
||||||
#custom-power:hover,
|
#custom-power:hover,
|
||||||
#clock:hover {
|
#clock:hover {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
background: @background-alt;
|
background: alpha(@background-alt, 0.68);
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-launcher:hover,
|
#custom-launcher:hover,
|
||||||
#workspaces button.active:hover {
|
#workspaces button.active:hover {
|
||||||
background: @accent;
|
background: alpha(@accent, 0.28);
|
||||||
}
|
}
|
||||||
|
|
||||||
.hidden {
|
.hidden {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
menu#menu {
|
||||||
|
background: @background;
|
||||||
|
border: 1px solid alpha(@accent-alt, 0.24);
|
||||||
|
border-radius: 17px;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
menu#menu menuitem {
|
||||||
|
border-radius: 12px;
|
||||||
|
margin: 12px;
|
||||||
|
padding: 10px 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
menu#menu menuitem:hover {
|
||||||
|
background: @background-alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
menu#menu menuitem.section-header {
|
||||||
|
color: @foreground-muted;
|
||||||
|
font-size: 17px;
|
||||||
|
margin-top: 4px;
|
||||||
|
padding: 5px 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
menu#menu menuitem#lock {
|
||||||
|
color: @accent;
|
||||||
|
}
|
||||||
|
|
||||||
|
menu#menu menuitem#logout {
|
||||||
|
color: @accent-soft;
|
||||||
|
}
|
||||||
|
|
||||||
|
menu#menu menuitem#suspend,
|
||||||
|
menu#menu menuitem#hibernate {
|
||||||
|
color: @type;
|
||||||
|
}
|
||||||
|
|
||||||
|
menu#menu menuitem#reboot {
|
||||||
|
color: @warning;
|
||||||
|
}
|
||||||
|
|
||||||
|
menu#menu menuitem#shutdown {
|
||||||
|
color: @danger;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
menu#menu separator {
|
||||||
|
background: alpha(@accent-alt, 0.24);
|
||||||
|
margin: 7px 12px;
|
||||||
|
}
|
||||||
|
|||||||
15
zsh/.zshrc
15
zsh/.zshrc
@@ -8,6 +8,9 @@ fi
|
|||||||
# If you come from bash you might have to change your $PATH.
|
# If you come from bash you might have to change your $PATH.
|
||||||
# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH
|
# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH
|
||||||
|
|
||||||
|
# Export path to include Cargo
|
||||||
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
|
|
||||||
# Path to your Oh My Zsh installation.
|
# Path to your Oh My Zsh installation.
|
||||||
export ZSH="$HOME/.oh-my-zsh"
|
export ZSH="$HOME/.oh-my-zsh"
|
||||||
|
|
||||||
@@ -115,8 +118,20 @@ source $ZSH/oh-my-zsh.sh
|
|||||||
# Example aliases
|
# Example aliases
|
||||||
# alias zshconfig="mate ~/.zshrc"
|
# alias zshconfig="mate ~/.zshrc"
|
||||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||||
|
alias dps='docker ps -a --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"'
|
||||||
|
|
||||||
# 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
|
||||||
[[ -r ~/.config/rider-palette/p10k.zsh ]] && source ~/.config/rider-palette/p10k.zsh
|
[[ -r ~/.config/rider-palette/p10k.zsh ]] && source ~/.config/rider-palette/p10k.zsh
|
||||||
export PATH="$HOME/.dotnet/tools:$HOME/.local/bin:$PATH"
|
export PATH="$HOME/.dotnet/tools:$HOME/.local/bin:$PATH"
|
||||||
|
|
||||||
|
# Apply the shared Rider palette last so it wins over OMZ defaults.
|
||||||
|
if [[ -r ~/.config/rider-palette/palette.sh ]]; then
|
||||||
|
source ~/.config/rider-palette/palette.sh
|
||||||
|
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ls --color=auto -d . >/dev/null 2>&1; then
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
fi
|
||||||
|
export PATH="$HOME/go/bin:$HOME/.cargo/bin:$PATH"
|
||||||
|
|||||||
Reference in New Issue
Block a user