Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc83738296 | ||
|
|
a39015bc31 | ||
|
|
b1f7165880 | ||
|
|
dbe9df5e12 | ||
|
|
2fe8c8859c | ||
|
|
c5611d9129 |
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 348 KiB |
@@ -1,3 +1,40 @@
|
||||
# dotfiles
|
||||
# Gentoo / Hyprland
|
||||
|
||||
Desktop configuration files for my Gentoo setup.
|
||||
The configs I use on my Gentoo machine. Hyprland runs the session; Quickshell supplies the bar and desktop controls. The look is deliberately plain: near-black surfaces, a muted blue accent, small gaps, and Maple Mono in the terminal.
|
||||
|
||||

|
||||
|
||||
## Configs
|
||||
|
||||
| Directory | Contents |
|
||||
| --- | --- |
|
||||
| `.config/hypr/` | Hyprland Lua config, key bindings, layout, animations, startup, and wallpaper settings |
|
||||
| `.config/quickshell/` | Bar, launcher, wallpaper picker, tray, status panels, and power menu |
|
||||
| `.config/foot/` | Foot terminal settings and color palette |
|
||||
| `.config/fish/` | Interactive shell defaults and aliases |
|
||||
| `.config/fastfetch/` | Fastfetch module layout |
|
||||
| `themes/KVJ/` | GTK 2 and GTK 3 theme files |
|
||||
|
||||
## Session details
|
||||
|
||||
Hyprland uses the dwindle layout with 5 px inner gaps, 10 px outer gaps, and a one-pixel border. `SUPER+E` launches Foot, `SUPER+D` opens the launcher, and `SUPER+P` opens the wallpaper picker. Media keys control playback, volume, and brightness; Print takes a full screenshot, while Shift+Print starts a region capture.
|
||||
|
||||
The Quickshell bar sits on the left. Its panels cover audio devices and playback, Wi-Fi, Bluetooth, battery, brightness, night light, and the system tray. There’s also a calendar, wallpaper browser, and power menu. The same palette appears in Foot and the Quickshell panels.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Foot uses Maple Mono at 9 pt, 14 px padding, and 10,000 lines of scrollback. Fish starts without a greeting; Fastfetch provides the machine summary when run from the terminal.
|
||||
|
||||

|
||||
|
||||
## Software
|
||||
|
||||
Gentoo Linux, Hyprland, Quickshell, Fish, Foot, Fastfetch, and Hyprpaper make up the session. Quickshell talks to PipeWire through `pactl` and its PipeWire module; NetworkManager and BlueZ provide network and Bluetooth control. Other commands used by the configs include `playerctl`, `wpctl`, `brightnessctl`, `hyprsunset`, `grim`, `slurp`, and `wl-clip-persist`.
|
||||
|
||||
## Adapting it
|
||||
|
||||
The current plant wallpaper is included at [`Pictures/Wallpaper/wallhaven-d5dkjm.jpg`](Pictures/Wallpaper/wallhaven-d5dkjm.jpg). The `KVJ` GTK 2/3 theme lives in [`themes/KVJ/`](themes/KVJ/); install it with `mkdir -p ~/.themes && cp -a themes/KVJ ~/.themes/`. Hyprland sets `GTK_THEME=KVJ`.
|
||||
|
||||
The live config expects wallpapers in `~/Pictures/Wallpapers`, and changes them through `~/.local/bin/wallpaper-set`. It also expects the Bibata Modern Classic cursor and uses `doas` for power and WireGuard actions. Check those paths, programs, and privileges before copying the files to another machine.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 549 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 551 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 309 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 202 KiB |
@@ -0,0 +1,63 @@
|
||||
# KVJ — GTK 2 theme. Uses GTK 2's built-in style without an engine.
|
||||
gtk-color-scheme = "bg_color:#151515\nfg_color:#D0D0D0\nbase_color:#181818\ntext_color:#D0D0D0\nselected_bg_color:#6C99BB\nselected_fg_color:#F5F5F5\ntooltip_bg_color:#181818\ntooltip_fg_color:#D0D0D0"
|
||||
gtk-font-name = "Liberation Mono 10"
|
||||
gtk-icon-theme-name = "Adwaita"
|
||||
|
||||
style "kvj-foot-default" {
|
||||
xthickness = 1
|
||||
ythickness = 1
|
||||
|
||||
bg[NORMAL] = "#151515"
|
||||
bg[PRELIGHT] = "#282828"
|
||||
bg[ACTIVE] = "#303030"
|
||||
bg[SELECTED] = "#6C99BB"
|
||||
bg[INSENSITIVE] = "#181818"
|
||||
|
||||
fg[NORMAL] = "#D0D0D0"
|
||||
fg[PRELIGHT] = "#F5F5F5"
|
||||
fg[ACTIVE] = "#F5F5F5"
|
||||
fg[SELECTED] = "#F5F5F5"
|
||||
fg[INSENSITIVE] = "#757575"
|
||||
|
||||
base[NORMAL] = "#181818"
|
||||
base[PRELIGHT] = "#202020"
|
||||
base[ACTIVE] = "#303030"
|
||||
base[SELECTED] = "#6C99BB"
|
||||
base[INSENSITIVE] = "#181818"
|
||||
|
||||
text[NORMAL] = "#D0D0D0"
|
||||
text[PRELIGHT] = "#F5F5F5"
|
||||
text[ACTIVE] = "#F5F5F5"
|
||||
text[SELECTED] = "#F5F5F5"
|
||||
text[INSENSITIVE] = "#757575"
|
||||
}
|
||||
|
||||
style "kvj-foot-entry" = "kvj-foot-default" {
|
||||
base[NORMAL] = "#151515"
|
||||
base[ACTIVE] = "#202020"
|
||||
text[NORMAL] = "#D0D0D0"
|
||||
text[SELECTED] = "#F5F5F5"
|
||||
}
|
||||
|
||||
style "kvj-foot-button" = "kvj-foot-default" {
|
||||
bg[NORMAL] = "#202020"
|
||||
bg[PRELIGHT] = "#282828"
|
||||
bg[ACTIVE] = "#303030"
|
||||
bg[SELECTED] = "#6C99BB"
|
||||
}
|
||||
|
||||
style "kvj-foot-menu" = "kvj-foot-default" {
|
||||
bg[NORMAL] = "#181818"
|
||||
bg[PRELIGHT] = "#282828"
|
||||
bg[ACTIVE] = "#303030"
|
||||
bg[SELECTED] = "#303030"
|
||||
fg[SELECTED] = "#6C99BB"
|
||||
}
|
||||
|
||||
widget_class "*" style "kvj-foot-default"
|
||||
widget_class "*Entry*" style "kvj-foot-entry"
|
||||
widget_class "*TextView*" style "kvj-foot-entry"
|
||||
widget_class "*Text*" style "kvj-foot-entry"
|
||||
widget_class "*Button*" style "kvj-foot-button"
|
||||
widget_class "*Menu*" style "kvj-foot-menu"
|
||||
widget_class "*MenuItem*" style "kvj-foot-menu"
|
||||
@@ -0,0 +1,222 @@
|
||||
/* KVJ — GTK 3 theme, matched to foot.ini and Quickshell tokens. */
|
||||
@define-color theme_bg_color #151515;
|
||||
@define-color theme_fg_color #D0D0D0;
|
||||
@define-color theme_base_color #181818;
|
||||
@define-color theme_text_color #D0D0D0;
|
||||
@define-color theme_selected_bg_color #6C99BB;
|
||||
@define-color theme_selected_fg_color #F5F5F5;
|
||||
@define-color theme_unfocused_bg_color #181818;
|
||||
@define-color theme_unfocused_fg_color #D0D0D0;
|
||||
@define-color theme_unfocused_base_color #151515;
|
||||
@define-color theme_unfocused_text_color #D0D0D0;
|
||||
@define-color borders #2F2F2F;
|
||||
@define-color borders_focus #454545;
|
||||
@define-color surface #202020;
|
||||
@define-color surface_hover #282828;
|
||||
@define-color surface_selected #303030;
|
||||
@define-color accent #6C99BB;
|
||||
@define-color success #7B9246;
|
||||
@define-color warning #D3A04D;
|
||||
@define-color danger #A53C23;
|
||||
@define-color teal #5EA8A2;
|
||||
@define-color muted #757575;
|
||||
|
||||
* {
|
||||
color: @theme_fg_color;
|
||||
font-family: "Maple Mono", "Liberation Mono", monospace;
|
||||
-GtkWidget-focus-line-width: 1;
|
||||
-GtkWidget-focus-padding: 2;
|
||||
}
|
||||
|
||||
window,
|
||||
window.background,
|
||||
.background {
|
||||
background-color: @theme_bg_color;
|
||||
color: @theme_fg_color;
|
||||
}
|
||||
|
||||
label:disabled,
|
||||
button:disabled,
|
||||
entry:disabled,
|
||||
textview text:disabled {
|
||||
color: @muted;
|
||||
}
|
||||
|
||||
entry,
|
||||
spinbutton,
|
||||
combobox entry,
|
||||
textview text,
|
||||
treeview.view,
|
||||
list row,
|
||||
.view {
|
||||
background-color: @theme_base_color;
|
||||
color: @theme_text_color;
|
||||
border-color: @borders;
|
||||
border-radius: 0;
|
||||
caret-color: #F5F5F5;
|
||||
outline-color: @accent;
|
||||
}
|
||||
|
||||
entry:focus,
|
||||
spinbutton:focus,
|
||||
combobox:focus,
|
||||
textview:focus,
|
||||
treeview.view:focus,
|
||||
button:focus {
|
||||
border-color: @borders_focus;
|
||||
box-shadow: inset 0 0 0 1px @accent;
|
||||
}
|
||||
|
||||
selection,
|
||||
entry selection,
|
||||
textview text selection,
|
||||
treeview.view:selected,
|
||||
row:selected,
|
||||
.view:selected {
|
||||
background-color: @theme_selected_bg_color;
|
||||
color: @theme_selected_fg_color;
|
||||
}
|
||||
|
||||
button,
|
||||
combobox button,
|
||||
spinbutton button,
|
||||
toolbar button {
|
||||
background-color: @surface;
|
||||
color: @theme_fg_color;
|
||||
border: 1px solid @borders;
|
||||
border-radius: 0;
|
||||
box-shadow: none;
|
||||
padding: 5px 9px;
|
||||
}
|
||||
|
||||
button:hover,
|
||||
combobox button:hover,
|
||||
spinbutton button:hover,
|
||||
toolbar button:hover {
|
||||
background-color: @surface_hover;
|
||||
border-color: @borders_focus;
|
||||
}
|
||||
|
||||
button:active,
|
||||
button:checked,
|
||||
button:selected,
|
||||
modelbutton:checked {
|
||||
background-color: @surface_selected;
|
||||
border-color: @borders_focus;
|
||||
}
|
||||
|
||||
button.suggested-action,
|
||||
button.suggested-action:hover {
|
||||
background-color: @accent;
|
||||
color: #151515;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
button.destructive-action,
|
||||
button.destructive-action:hover {
|
||||
background-color: @danger;
|
||||
color: #F5F5F5;
|
||||
border-color: @danger;
|
||||
}
|
||||
|
||||
menu,
|
||||
.menu,
|
||||
popover,
|
||||
popover.background,
|
||||
tooltip,
|
||||
tooltip.background {
|
||||
background-color: #181818;
|
||||
color: @theme_fg_color;
|
||||
border: 1px solid @borders;
|
||||
border-radius: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
menuitem,
|
||||
modelbutton,
|
||||
popover modelbutton {
|
||||
background-color: transparent;
|
||||
color: @theme_fg_color;
|
||||
border-radius: 0;
|
||||
padding: 5px 9px;
|
||||
}
|
||||
|
||||
menuitem:hover,
|
||||
menuitem:focus,
|
||||
modelbutton:hover,
|
||||
modelbutton:focus,
|
||||
popover modelbutton:hover {
|
||||
background-color: @surface_hover;
|
||||
color: #F5F5F5;
|
||||
outline-color: @accent;
|
||||
}
|
||||
|
||||
menuitem:checked,
|
||||
modelbutton:checked {
|
||||
background-color: @surface_selected;
|
||||
color: @accent;
|
||||
}
|
||||
|
||||
headerbar,
|
||||
toolbar {
|
||||
background-color: #181818;
|
||||
color: @theme_fg_color;
|
||||
border: 0;
|
||||
border-bottom: 1px solid @borders;
|
||||
border-radius: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
headerbar button {
|
||||
padding: 4px 8px;
|
||||
}
|
||||
|
||||
scrollbar trough {
|
||||
background-color: #151515;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
scrollbar slider {
|
||||
background-color: #505050;
|
||||
border: 1px solid @borders;
|
||||
border-radius: 0;
|
||||
min-width: 7px;
|
||||
min-height: 7px;
|
||||
}
|
||||
|
||||
scrollbar slider:hover {
|
||||
background-color: @accent;
|
||||
}
|
||||
|
||||
progressbar trough,
|
||||
levelbar trough {
|
||||
background-color: @surface;
|
||||
border: 1px solid @borders;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
progressbar progress,
|
||||
levelbar block.filled {
|
||||
background-color: @accent;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
switch,
|
||||
check,
|
||||
radio {
|
||||
background-color: @surface;
|
||||
border: 1px solid @borders;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
switch:checked,
|
||||
check:checked,
|
||||
radio:checked {
|
||||
background-color: @accent;
|
||||
border-color: @borders_focus;
|
||||
color: #151515;
|
||||
}
|
||||
|
||||
*:backdrop {
|
||||
color: @theme_unfocused_fg_color;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Name=KVJ
|
||||
Type=X-GNOME-Metatheme
|
||||
Comment=Square-edged dark GTK theme based on the Foot and Quickshell palette
|
||||
Encoding=UTF-8
|
||||
|
||||
[X-GNOME-Metatheme]
|
||||
GtkTheme=KVJ
|
||||
IconTheme=Adwaita
|
||||
CursorTheme=Adwaita
|
||||
Reference in new issue
Block a user