Merge branch 'main' of sobina-git:jbourdon/dotfiles

This commit is contained in:
2026-03-31 18:58:48 -04:00
9 changed files with 199 additions and 109 deletions

View File

@@ -1,6 +1,6 @@
[font] [font]
size = 16 size = 12
[font.normal] [font.normal]
family = "JetBrainsMono Nerd Font" family = "JetBrainsMono Nerd Font"

View File

@@ -73,8 +73,8 @@ 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
@@ -172,11 +172,6 @@ cursor {
inactive_timeout = 1 inactive_timeout = 1
} }
# https://wiki.hyprland.org/Configuring/Variables/#gestures
# gestures {
# workspace_swipe = false
#}
#################### ####################
### KEYBINDINGSS ### ### KEYBINDINGSS ###
#################### ####################
@@ -239,16 +234,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)$

View File

@@ -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

View File

@@ -47,11 +47,11 @@ def build_ls_colors(colors: dict[str, str]) -> str:
entries = { entries = {
"no": "0", "no": "0",
"fi": "0", "fi": "0",
"di": sgr_fg(colors["func"], bold=True), "di": sgr_fg(colors["keyword"], bold=True),
"ln": sgr_fg(colors["field"], bold=True), "ln": sgr_fg(colors["field"], bold=True),
"or": sgr_fg(colors["error"], bold=True), "or": sgr_fg(colors["error"]),
"mi": "0", "mi": "0",
"so": sgr_fg(colors["type"]), "so": sgr_fg(colors["field"]),
"pi": sgr_fg(colors["string"]), "pi": sgr_fg(colors["string"]),
"do": sgr_fg(colors["func"], bold=True), "do": sgr_fg(colors["func"], bold=True),
"bd": sgr_fg(colors["number"]), "bd": sgr_fg(colors["number"]),
@@ -59,52 +59,53 @@ def build_ls_colors(colors: dict[str, str]) -> str:
"su": sgr_fg(colors["error"], bold=True), "su": sgr_fg(colors["error"], bold=True),
"sg": sgr_fg(colors["escape"], bold=True), "sg": sgr_fg(colors["escape"], bold=True),
"ex": sgr_fg(colors["func"], bold=True), "ex": sgr_fg(colors["func"], bold=True),
"*.tar": sgr_fg(colors["string"]), "*.tar": sgr_fg(colors["type_alt"]),
"*.tgz": sgr_fg(colors["string"]), "*.tgz": sgr_fg(colors["type_alt"]),
"*.gz": sgr_fg(colors["string"]), "*.gz": sgr_fg(colors["type_alt"]),
"*.bz2": sgr_fg(colors["string"]), "*.bz2": sgr_fg(colors["type_alt"]),
"*.xz": sgr_fg(colors["string"]), "*.xz": sgr_fg(colors["type_alt"]),
"*.zip": sgr_fg(colors["string"]), "*.zip": sgr_fg(colors["type_alt"]),
"*.7z": sgr_fg(colors["string"]), "*.7z": sgr_fg(colors["type_alt"]),
"*.zst": sgr_fg(colors["string"]), "*.zst": sgr_fg(colors["type_alt"]),
"*.rar": sgr_fg(colors["string"]), "*.rar": sgr_fg(colors["type_alt"]),
"*.jpg": sgr_fg(colors["field"]), "*.jpg": sgr_fg(colors["type"]),
"*.jpeg": sgr_fg(colors["field"]), "*.jpeg": sgr_fg(colors["type"]),
"*.png": sgr_fg(colors["field"]), "*.png": sgr_fg(colors["type"]),
"*.gif": sgr_fg(colors["field"]), "*.gif": sgr_fg(colors["type"]),
"*.svg": sgr_fg(colors["field"]), "*.svg": sgr_fg(colors["type"]),
"*.webp": sgr_fg(colors["field"]), "*.webp": sgr_fg(colors["type"]),
"*.mp3": sgr_fg(colors["type"]), "*.mp3": sgr_fg(colors["type"]),
"*.flac": sgr_fg(colors["type"]), "*.flac": sgr_fg(colors["type"]),
"*.wav": sgr_fg(colors["type"]), "*.wav": sgr_fg(colors["type"]),
"*.mp4": sgr_fg(colors["type"]), "*.mp4": sgr_fg(colors["type"]),
"*.mkv": sgr_fg(colors["type"]), "*.mkv": sgr_fg(colors["type"]),
"*.mov": sgr_fg(colors["type"]), "*.mov": sgr_fg(colors["type"]),
"*.pdf": sgr_fg(colors["number"]), "*.pdf": sgr_fg(colors["comment"]),
"*.md": sgr_fg(colors["comment"]), "*.md": sgr_fg(colors["comment"]),
"*.txt": sgr_fg(colors["fg"]), "*.txt": sgr_fg(colors["comment"]),
"*.log": sgr_fg(colors["comment"]), "*.log": sgr_fg(colors["comment"]),
"*.conf": sgr_fg(colors["keyword"]), "*.conf": sgr_fg(colors["string"]),
"*.json": sgr_fg(colors["keyword"]), "*.json": sgr_fg(colors["string"]),
"*.yaml": sgr_fg(colors["keyword"]), "*.yaml": sgr_fg(colors["string"]),
"*.yml": sgr_fg(colors["keyword"]), "*.yml": sgr_fg(colors["string"]),
"*.toml": sgr_fg(colors["keyword"]), "*.toml": sgr_fg(colors["string"]),
"*.ini": sgr_fg(colors["keyword"]), "*.ini": sgr_fg(colors["string"]),
"*.sh": sgr_fg(colors["func"], bold=True), "*.sh": sgr_fg(colors["func"]),
"*.bash": sgr_fg(colors["func"], bold=True), "*.bash": sgr_fg(colors["func"]),
"*.zsh": sgr_fg(colors["func"], bold=True), "*.zsh": sgr_fg(colors["func"]),
"*.py": sgr_fg(colors["func"]), "*.py": sgr_fg(colors["field"]),
"*.js": sgr_fg(colors["keyword"]), "*.js": sgr_fg(colors["field"]),
"*.ts": sgr_fg(colors["keyword"]), "*.ts": sgr_fg(colors["field"]),
"*.tsx": sgr_fg(colors["keyword"]), "*.tsx": sgr_fg(colors["field"]),
"*.jsx": sgr_fg(colors["keyword"]), "*.jsx": sgr_fg(colors["field"]),
"*.lua": sgr_fg(colors["type_alt"]), "*.lua": sgr_fg(colors["field"]),
"*.rs": sgr_fg(colors["type_alt"]), "*.rs": sgr_fg(colors["field"]),
"*.go": sgr_fg(colors["type_alt"]), "*.go": sgr_fg(colors["field"]),
"*.c": sgr_fg(colors["field"]), "*.c": sgr_fg(colors["field"]),
"*.h": sgr_fg(colors["field"]), "*.h": sgr_fg(colors["field"]),
"*.cpp": sgr_fg(colors["field"]), "*.cpp": sgr_fg(colors["field"]),
"*.hpp": 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()) return ":".join(f"{key}={value}" for key, value in entries.items())

View File

@@ -20,4 +20,4 @@ export RIDER_ESCAPE="#D688D4"
export RIDER_ERROR="#FF5647" export RIDER_ERROR="#FF5647"
# Shared Rider palette for GNU ls and compatible tools. # Shared Rider palette for GNU ls and compatible tools.
export LS_COLORS="no=0:fi=0:di=1;38;2;57;204;155:ln=1;38;2;102;195;204:or=1;38;2;255;86;71:mi=0:so=38;2;193;145;255: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;201;162;109:*.tgz=38;2;201;162;109:*.gz=38;2;201;162;109:*.bz2=38;2;201;162;109:*.xz=38;2;201;162;109:*.zip=38;2;201;162;109:*.7z=38;2;201;162;109:*.zst=38;2;201;162;109:*.rar=38;2;201;162;109:*.jpg=38;2;102;195;204:*.jpeg=38;2;102;195;204:*.png=38;2;102;195;204:*.gif=38;2;102;195;204:*.svg=38;2;102;195;204:*.webp=38;2;102;195;204:*.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;237;148;192:*.md=38;2;133;196;108:*.txt=38;2;189;189;189:*.log=38;2;133;196;108:*.conf=38;2;108;149;235:*.json=38;2;108;149;235:*.yaml=38;2;108;149;235:*.yml=38;2;108;149;235:*.toml=38;2;108;149;235:*.ini=38;2;108;149;235:*.sh=1;38;2;57;204;155:*.bash=1;38;2;57;204;155:*.zsh=1;38;2;57;204;155:*.py=38;2;57;204;155:*.js=38;2;108;149;235:*.ts=38;2;108;149;235:*.tsx=38;2;108;149;235:*.jsx=38;2;108;149;235:*.lua=38;2;225;191;255:*.rs=38;2;225;191;255:*.go=38;2;225;191;255:*.c=38;2;102;195;204:*.h=38;2;102;195;204:*.cpp=38;2;102;195;204:*.hpp=38;2;102;195;204" 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"

View File

@@ -2,18 +2,16 @@
# Source this near the end of ~/.tmux.conf. # Source this near the end of ~/.tmux.conf.
set -g status-style "bg=#191A1C,fg=#F0F0F0" set -g status-style "bg=#191A1C,fg=#F0F0F0"
set -g status-left-style "bg=#191A1C,fg=#F0F0F0" set -g status-left-length 80
set -g status-right-style "bg=#191A1C,fg=#F0F0F0"
set -g status-left-length 48
set -g status-right-length 80 set -g status-right-length 80
set -g status-justify centre set -g status-justify centre
set -g window-status-separator " " set -g window-status-separator " "
set -g status-left "#[fg=#191A1C,bg=#39CC9B,bold] #S #[fg=#39CC9B,bg=#191A1C]" 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 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"

View File

@@ -2,16 +2,15 @@
"layer": "top", "layer": "top",
"position": "top", "position": "top",
"mod": "dock", "mod": "dock",
"margin-left": 10, "margin-left": 4,
"margin-right": 10, "margin-right": 4,
"margin-top": 10, "margin-top": 8,
"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" "hyprland/window"
], ],
@@ -24,16 +23,10 @@
"pulseaudio", "pulseaudio",
"cpu", "cpu",
"memory", "memory",
"battery",
"tray", "tray",
"custom/power" "custom/power"
], ],
"custom/launcher": {
"format": "",
"tooltip": true,
"tooltip-format": "Open Walker",
"on-click": "walker",
"on-click-right": "thunar"
},
"memory": { "memory": {
"interval": 5, "interval": 5,
"format": "󰍛 {}%" "format": "󰍛 {}%"
@@ -42,6 +35,27 @@
"interval": 5, "interval": 5,
"format": "󰻠 {usage}%" "format": "󰻠 {usage}%"
}, },
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": "󰂄 {capacity}%",
"format-plugged": " {capacity}%",
"format-full": "󰁹 100%",
"format-icons": [
"󰂎",
"󰁺",
"󰁼",
"󰁾",
"󰂀",
"󰂂",
"󰁹"
],
"interval": 10,
"tooltip": true
},
"tray": { "tray": {
"icon-size": 18, "icon-size": 18,
"spacing": 6, "spacing": 6,
@@ -93,7 +107,6 @@
"clock": { "clock": {
"format": "{:%R %a %d %b}", "format": "{:%R %a %d %b}",
"rotate": 0, "rotate": 0,
"on-click": "walker",
"tooltip-format": "<tt>{calendar}</tt>", "tooltip-format": "<tt>{calendar}</tt>",
"calendar": { "calendar": {
"mode": "year", "mode": "year",

View File

@@ -1,17 +1,26 @@
<?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>
@@ -19,15 +28,26 @@
<object class="GtkSeparatorMenuItem" id="sep1"/> <object class="GtkSeparatorMenuItem" id="sep1"/>
</child> </child>
<!-- Power controls -->
<child> <child>
<object class="GtkMenuItem" id="suspend"> <object class="GtkMenuItem" id="section-sleep">
<property name="label"> Suspend</property> <property name="label">Sleep</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
<style>
<class name="section-header"/>
</style>
</object> </object>
</child> </child>
<child>
<object class="GtkMenuItem" id="suspend">
<property name="label">󰤄 Suspend</property>
</object>
</child>
<child> <child>
<object class="GtkMenuItem" id="hibernate"> <object class="GtkMenuItem" id="hibernate">
<property name="label"> Hibernate</property> <property name="label">󰒲 Hibernate</property>
</object> </object>
</child> </child>
@@ -36,16 +56,26 @@
</child> </child>
<child> <child>
<object class="GtkMenuItem" id="shutdown"> <object class="GtkMenuItem" id="section-power">
<property name="label">⏻ Shutdown</property> <property name="label">Power</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
<style>
<class name="section-header"/>
</style>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkMenuItem" id="reboot"> <object class="GtkMenuItem" id="reboot">
<property name="label"> Reboot</property> <property name="label">󰜉 Reboot</property>
</object> </object>
</child> </child>
<child>
<object class="GtkMenuItem" id="shutdown">
<property name="label">󰐥 Shut Down</property>
</object>
</child>
</object> </object>
</interface> </interface>

View File

@@ -44,25 +44,17 @@ tooltip {
#pulseaudio, #pulseaudio,
#cpu, #cpu,
#memory, #memory,
#battery,
#tray, #tray,
#custom-power { #custom-power {
background: alpha(@background, 0.56); background: @background;
border: 1px solid alpha(@foreground, 0.14); border: 1px solid alpha(@accent-alt, 0.22);
border-radius: 14px; border-radius: 8px;
box-shadow: 0 8px 24px alpha(@background, 0.22);
margin: 0 5px; margin: 0 5px;
padding: 0 12px; padding: 0 12px;
min-height: 34px; min-height: 34px;
} }
#custom-launcher {
background: @accent;
border-color: @accent;
color: @background;
font-size: 18px;
padding: 0 14px 0 12px;
}
#workspaces { #workspaces {
padding: 0 6px; padding: 0 6px;
} }
@@ -101,7 +93,7 @@ tooltip {
#clock { #clock {
border-color: alpha(@accent, 0.35); border-color: alpha(@accent, 0.35);
color: @foreground; color: @foreground;
font-weight: 700; font-weight: 400;
padding: 0 18px; padding: 0 18px;
} }
@@ -122,12 +114,30 @@ tooltip {
color: @warning; color: @warning;
} }
#battery {
color: @accent-soft;
}
#battery.charging,
#battery.plugged {
color: @accent;
}
#battery.warning:not(.charging) {
color: @warning;
}
#battery.critical:not(.charging) {
color: @danger;
}
#tray { #tray {
padding: 0 14px; padding: 0 14px;
} }
#custom-power { #custom-power {
color: @danger; color: @danger;
font-size: 22px;
padding: 0 13px; padding: 0 13px;
} }
@@ -138,6 +148,7 @@ tooltip {
#pulseaudio:hover, #pulseaudio:hover,
#cpu:hover, #cpu:hover,
#memory:hover, #memory:hover,
#battery:hover,
#tray:hover, #tray:hover,
#custom-power:hover, #custom-power:hover,
#clock:hover { #clock:hover {
@@ -153,3 +164,54 @@ tooltip {
.hidden { .hidden {
opacity: 0; opacity: 0;
} }
menu#menu {
background: @background;
border: 1px solid alpha(@accent-alt, 0.24);
border-radius: 14px;
padding: 8px;
}
menu#menu menuitem {
border-radius: 10px;
margin: 2px 4px;
padding: 6px 12px;
}
menu#menu menuitem:hover {
background: @background-alt;
}
menu#menu menuitem.section-header {
color: @foreground-muted;
font-size: 12px;
margin-top: 4px;
padding: 4px 12px;
}
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: 6px 10px;
}