Compare commits

..
Author SHA1 Message Date
wfalkowski dc83738296 Include KVJ GTK theme 2026-10-15 21:38:12 +00:00
wfalkowski a39015bc31 Add current desktop wallpaper 2026-10-15 21:37:37 +00:00
wfalkowski b1f7165880 README.md 2026-10-15 21:36:08 +00:00
wfalkowski dbe9df5e12 Document desktop setup and add screenshots 2026-10-15 21:31:01 +00:00
wfalkowski 2fe8c8859c Remove backup files from dotfiles 2026-10-15 21:17:54 +00:00
wfalkowski c5611d9129 Add desktop configuration 2026-10-15 21:17:12 +00:00
10 changed files with 334 additions and 3 deletions

No files matched your search

-1
View File
@@ -5,6 +5,5 @@ end
set -gx fish_greeting ""
set -gx PATH "/home/wfalkowski/.local/bin" $PATH
set -gx XDG_RUNTIME_DIR "/run/user/1000"
set -gx GEMINI_API_KEY "AQ.Ab8RN6K6D-uslnx_dzXIYm5I2e50zErW43zuMMRez7z-FJARTvA"
alias vim nvim
Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

+39 -2
View File
@@ -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.
![Desktop with the Quickshell side bar and media notification](screenshots/desktop.png)
## 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.
![Battery and brightness panel](screenshots/battery-panel.png)
![Audio devices and volume controls](screenshots/audio-panel.png)
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.
![Volume on-screen display](screenshots/volume-osd.png)
## 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

+63
View File
@@ -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"
+222
View File
@@ -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;
}
+10
View File
@@ -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