readme at the root, and fix what would break on a fresh machine
The repo landing page showed .config, .themes and .gtkrc-2.0 and nothing else,
so there was no sign the bootstrap existed. It has always been at
.config/rice/install.sh - that is just where it lands on disk. Root README now
carries the curl one-liner, a map of what is tracked, and a note that this is a
bare repo over $HOME so nobody goes looking for a wrapper folder again.
Things that would not have survived a replication:
- polybar's click and scroll handlers called $HOME/bin/system-info.sh and
$HOME/bin/volume.sh. That directory does not exist; the scripts are in
.config/scripts. The exec lines already pointed there, so only the
interactive bits were dead.
- bspwmrc hardcoded DisplayPort-0, so no desktops on any other machine.
Takes the xrandr primary now, falling back to the first monitor bspc sees.
- install.sh picked conflicting files out of git's checkout error with a
regex that required a dot inside the name, so .bashrc and .xinitrc were
never matched and never backed up - and .bashrc always exists on a fresh
Arch install, which is precisely when the checkout aborts.
- bspwmrc sourced ~/.env and merged ~/.Xresources unconditionally; neither
exists. Guarded.
packages.txt was missing programs whose configs this repo already carries:
fish, neovim, yazi, kitty, plus xrdb/xsetroot/xsettingsd/wmname that bspwmrc
launches, gtk3 for the control panel, and wireplumber for the wpctl calls.
Newly tracked: .xinitrc (the thing that actually starts bspwm), .bashrc (which
holds the dotfiles alias), greenclip, flameshot, kitty, Thunar, mimeapps and
user-dirs. Dropped six editor backups that had been committed by accident.
Skipped QtProject.conf - it is file-dialog history, not configuration.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011beBgzmH72WFn8wiWqRZPf
This commit is contained in:
parent
10fca7d9e4
commit
0780a3abf5
22 changed files with 358 additions and 262 deletions
15
.bashrc
Normal file
15
.bashrc
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
# opencode
|
||||
export PATH=/home/sarthak/.opencode/bin:$PATH
|
||||
|
||||
# >>> NightFrame Android build toolchain (added by Claude) >>>
|
||||
export JAVA_HOME="$HOME/android-dev/jdk17"
|
||||
export ANDROID_HOME="$HOME/Android/Sdk"
|
||||
export ANDROID_SDK_ROOT="$ANDROID_HOME"
|
||||
export PATH="$JAVA_HOME/bin:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH"
|
||||
# <<< NightFrame Android build toolchain <<<
|
||||
export PATH=$PATH:$HOME/.maestro/bin
|
||||
|
||||
alias k="kubectl"
|
||||
125
.config/Thunar/accels.scm
Normal file
125
.config/Thunar/accels.scm
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
; thunar GtkAccelMap rc-file -*- scheme -*-
|
||||
; this file is an automated accelerator map dump
|
||||
;
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-type" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-last-modified" "")
|
||||
; (gtk_accel_path "<Actions>/Thunarwindow/menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/cut" "<Primary>x")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-size" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/file-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/close-tab" "<Primary>w")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/switch-previous-tab-alt" "<Primary><Shift>ISO_Left_Tab")
|
||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-size" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/new-window" "<Primary>n")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/clear-directory-specific-settings" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/close-window" "<Primary>q")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-parent" "<Alt>Up")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-size-in-bytes" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/switch-previous-tab" "<Primary>Page_Up")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/open" "<Primary>o")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-ascending" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-split-view" "F3")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/copy-2" "<Primary>Insert")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/trash-delete" "Delete")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-recent" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-configure-toolbar" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/forward" "<Alt>Right")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/restore" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-location-alt" "<Alt>d")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out-alt" "<Primary>KP_Subtract")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/select-by-pattern" "<Primary>s")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-file-menu" "F10")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/contents" "F1")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/show-highlight" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-descending" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-name" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/select-all-files" "<Primary>a")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/execute" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/properties" "<Alt>Return")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/cut-2" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-dtime" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/switch-next-tab" "<Primary>Page_Down")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-templates" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/paste-2" "<Shift>Insert")
|
||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-filetype" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/close-all-windows" "<Primary><Shift>w")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/create-document" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/detach-tab" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/cancel-search" "Escape")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in-alt2" "<Primary>equal")
|
||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-hidden-count" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarShortcutsPane/sendto-shortcuts" "<Primary>d")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/undo" "<Primary>z")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/toggle-sort-order" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-entry" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/paste" "<Primary>v")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in-alt1" "<Primary>KP_Add")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-menubar" "<Primary>m")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/back" "<Alt>Left")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-desktop" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-detailed-list" "<Primary>2")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/restore-show" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/sendto-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-display-name" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/go-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out" "<Primary>minus")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/remove-from-recent" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/open-with-other" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/invert-selection" "<Primary><Shift>i")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-shortcuts" "<Primary>b")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/reload-alt-2" "Reload")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/reload" "<Primary>r")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/edit-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/copy" "<Primary>c")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/bookmarks-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/forward-alt" "Forward")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/move-to-trash" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/reload-alt-1" "F5")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/delete-3" "<Shift>KP_Delete")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/unselect-all-files" "Escape")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/contents/help-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/arrange-items-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-mtime" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-computer" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-image-preview" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-side-pane" "F9")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-icons" "<Primary>1")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/delete-2" "<Shift>Delete")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in" "<Primary>plus")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/rename" "F2")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-location" "<Primary>l")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-compact-list" "<Primary>3")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/search" "<Primary>f")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/new-tab" "<Primary>t")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset" "<Primary>0")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/back-alt2" "Back")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/open-in-new-tab" "<Primary><Shift>p")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-buttons" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/redo" "<Primary><Shift>z")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-trash" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/open-in-new-window" "<Primary><Shift>o")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-statusbar" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/open-location" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/duplicate" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/trash-delete-2" "KP_Delete")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/back-alt1" "BackSpace")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/create-folder" "<Primary><Shift>n")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-home" "<Alt>Home")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/switch-focused-split-view-pane" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/show-hidden" "<Primary>h")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/set-default-app" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/empty-trash" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/preferences" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/delete" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-network" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-tree" "<Primary>e")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-file-system" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/search-alt" "Search")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/switch-next-tab-alt" "<Primary>Tab")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/sendto-desktop" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/make-link" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset-alt" "<Primary>KP_0")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/about" "")
|
||||
15
.config/Thunar/uca.xml
Normal file
15
.config/Thunar/uca.xml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<actions>
|
||||
<action>
|
||||
<icon>utilities-terminal</icon>
|
||||
<name>Open Terminal Here</name>
|
||||
<submenu></submenu>
|
||||
<unique-id>1777121406915879-1</unique-id>
|
||||
<command>exo-open --working-directory %f --launch TerminalEmulator</command>
|
||||
<description>Example for a custom action</description>
|
||||
<range></range>
|
||||
<patterns>*</patterns>
|
||||
<startup-notify/>
|
||||
<directories/>
|
||||
</action>
|
||||
</actions>
|
||||
|
|
@ -20,10 +20,13 @@ wmname LG3D
|
|||
|
||||
# Vars
|
||||
export XDG_CURRENT_DESKTOP="bspwm"
|
||||
sh -c 'function shenv() { export "$1=$2"; }; source ~/.env;'
|
||||
[ -f "$HOME/.env" ] && . "$HOME/.env"
|
||||
|
||||
# Workspaces Configuration
|
||||
bspc monitor DisplayPort-0 -d 1 2 3 4 5 6 7 8
|
||||
# Whatever the primary output is called on this machine.
|
||||
MONITOR="$(xrandr --query | awk '/ connected primary/{print $1; exit}')"
|
||||
[ -z "$MONITOR" ] && MONITOR="$(bspc query -M --names | head -n1)"
|
||||
bspc monitor "$MONITOR" -d 1 2 3 4 5 6 7 8
|
||||
|
||||
# Enable window focus follow mouse pointer
|
||||
bspc config focus_follows_pointer true
|
||||
|
|
@ -82,7 +85,7 @@ bspc rule -a 'legcord' desktop=10
|
|||
# (xdg-desktop-portal-gtk, used by browser file pickers) fail with "cannot open display".
|
||||
systemctl --user import-environment DISPLAY XAUTHORITY XDG_CURRENT_DESKTOP
|
||||
dbus-update-activation-environment --systemd DISPLAY XAUTHORITY XDG_CURRENT_DESKTOP
|
||||
xrdb merge $HOME/.Xresources
|
||||
[ -f "$HOME/.Xresources" ] && xrdb merge "$HOME/.Xresources"
|
||||
xsettingsd &
|
||||
dunst &
|
||||
flameshot &
|
||||
|
|
|
|||
|
|
@ -1,144 +0,0 @@
|
|||
# Animations
|
||||
animations = true;
|
||||
animation-stiffness-in-tag = 200;
|
||||
animation-stiffness-tag-change = 120.0;
|
||||
animation-window-mass = 0.5;
|
||||
animation-dampening = 20;
|
||||
animation-clamping = true;
|
||||
animation-for-open-window = "slide-up";
|
||||
animation-for-unmap-window = "slide-down";
|
||||
animation-for-menu-window = "slide-up";
|
||||
animation-for-transient-window = "slide-up";
|
||||
animation-for-prev-tag = "slide-up";
|
||||
enable-fading-prev-tag = true;
|
||||
animation-for-next-tag = "slide-down";
|
||||
enable-fading-next-tag = true;
|
||||
|
||||
# Shadow
|
||||
shadow = false;
|
||||
|
||||
# Fading
|
||||
fading = true;
|
||||
fade-in-step = 0.02;
|
||||
fade-out-step = 0.03;
|
||||
fade-delta = 8;
|
||||
no-fading-openclose = false;
|
||||
|
||||
# Transparency
|
||||
inactive-opacity-override = true;
|
||||
active-opacity-override = true;
|
||||
|
||||
focus-exclude = [
|
||||
"class_g = 'Cairo-clock'",
|
||||
];
|
||||
|
||||
opacity-rule = [
|
||||
# Fullscreen is not transparent
|
||||
"100:fullscreen",
|
||||
"100:_NET_WM_STATE@[*]:32a = '_NET_WM_STATE_FULLSCREEN'",
|
||||
|
||||
# Rest of the apps
|
||||
"75:class_g *?= 'firefox'",
|
||||
"75:class_g *?= 'Signal'",
|
||||
"75:class_g *?= 'Code'",
|
||||
"75:class_g *?= 'nemo'",
|
||||
"75:class_g *?= 'pavucontrol'",
|
||||
"75:class_g *?= 'qt5ct'",
|
||||
"75:class_g *?= 'qt6ct'",
|
||||
"75:class_g *?= 'Ark'",
|
||||
"75:class_g *?= 'Xarchiver'",
|
||||
"75:class_g *?= 'obs'",
|
||||
"75:class_g *?= 'kitty'",
|
||||
"75:class_g *?= 'Spotify'",
|
||||
"75:class_g *?= 'blueman-manager'",
|
||||
"75:class_g *?= 'Steam'",
|
||||
"75:class_g *?= 'steamwebhelper'",
|
||||
"75:class_g *?= 'Discord'",
|
||||
"75:class_g *?= 'Webcord'",
|
||||
"75:class_g *?= 'legcord'",
|
||||
"75:class_g *?= 'yad'",
|
||||
"75:class_g *?= 'org.kde.polkit-kde-authentication-agent-1'",
|
||||
"75:class_g *?= 'polkit-gnome-authentication-agent-1'",
|
||||
"75:class_g *?= 'org.freedesktop.impl.portal.desktop.gtk'",
|
||||
"75:class_g *?= 'Loupe'",
|
||||
"75:class_g *?= 'gnome-calculator'",
|
||||
"75:class_g *?= 'Evince'",
|
||||
"75:class_g *?= 'Polybar'",
|
||||
"75:class_g *?= 'Rofi'",
|
||||
];
|
||||
|
||||
|
||||
# Borders
|
||||
border-color = "#8b9151";
|
||||
corner-radius = 0;
|
||||
unredir-if-possible = true;
|
||||
no-ewmh-fullscreen = true;
|
||||
|
||||
rounded-corners-exclude = [
|
||||
"name = 'Polybar tray window'",
|
||||
"window_type = 'desktop'",
|
||||
"window_type = 'dropdown_menu'",
|
||||
"window_type = 'popup_menu'",
|
||||
"window_type = 'utility'",
|
||||
"window_type = 'tooltip'",
|
||||
"window_type = 'splash'",
|
||||
"class_g *?= 'dunst'",
|
||||
"class_g *?= 'Rofi'",
|
||||
"BSPWM_TILED@:c = 1",
|
||||
"_NET_WM_STATE@[*]:32a = '_NET_WM_STATE_FULLSCREEN'",
|
||||
];
|
||||
|
||||
|
||||
# Blur
|
||||
blur: {
|
||||
method = "dual_kawase";
|
||||
strength = 3;
|
||||
background = true;
|
||||
background-frame = false;
|
||||
background-fixed = false;
|
||||
}
|
||||
|
||||
blur-background-exclude = [
|
||||
"class_g = 'Dunst'",
|
||||
"window_type = 'desktop'",
|
||||
"window_type *= 'menu'",
|
||||
"window_type = 'utility'",
|
||||
"window_type = 'tooltip'",
|
||||
"window_type = 'splash'",
|
||||
"class_g *?= 'polybar'",
|
||||
"class_g *?= 'Rofi'",
|
||||
"class_g *?= 'screenkey'",
|
||||
"class_g *?= 'GLava'",
|
||||
"class_g *?= 'kdeconnectd'",
|
||||
"class_g *?= 'kdeconnect.daemon'",
|
||||
"class_g *?= 'activate-linux'",
|
||||
"_GTK_FRAME_EXTENTS@:c",
|
||||
];
|
||||
|
||||
# General settings
|
||||
backend = "glx"
|
||||
dithered-present = false;
|
||||
mark-wmwin-focused = true;
|
||||
mark-ovredir-focused = true;
|
||||
detect-rounded-corners = false;
|
||||
detect-client-opacity = false;
|
||||
use-ewmh-active-win = true;
|
||||
unredir-if-possible = false;
|
||||
detect-transient = true;
|
||||
#glx-no-stencil = true;
|
||||
use-damage = true;
|
||||
xrender-sync-fence = true;
|
||||
#window-shader-fg = "";
|
||||
transparent-clipping = false;
|
||||
log-level = "warn";
|
||||
|
||||
# Window types
|
||||
wintypes:
|
||||
{
|
||||
tooltip = { fade = true; shadow = false; opacity = 0.85; focus = true; full-shadow = false; };
|
||||
dock = { shadow = false; clip-shadow-above = true; }
|
||||
dnd = { shadow = false; }
|
||||
popup_menu = { opacity = 0.9; }
|
||||
dropdown_menu = { opacity = 0.9; }
|
||||
normal = { animation = "slide-down"; animation-unmap = "slide-up"; }
|
||||
};
|
||||
6
.config/flameshot/flameshot.ini
Normal file
6
.config/flameshot/flameshot.ini
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
[General]
|
||||
contrastOpacity=188
|
||||
drawColor=#800080
|
||||
drawFontSize=26
|
||||
drawThickness=3
|
||||
useX11LegacyScreenshot=true
|
||||
11
.config/greenclip.toml
Normal file
11
.config/greenclip.toml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
[greenclip]
|
||||
blacklisted_applications = []
|
||||
enable_image_support = true
|
||||
history_file = "/home/sarthak/.cache/greenclip.history"
|
||||
image_cache_directory = "/tmp/greenclip"
|
||||
max_history_length = 50
|
||||
max_selection_size_bytes = 0
|
||||
static_history = ["Greenclip has been updated to v4.1, update your new config file at ~/.config/greenclip.toml"]
|
||||
trim_space_from_selection = true
|
||||
use_primary_selection_as_input = false
|
||||
11
.config/kitty/kitty.conf
Executable file
11
.config/kitty/kitty.conf
Executable file
|
|
@ -0,0 +1,11 @@
|
|||
font_family JetBrainsMono Nerd Font Regular
|
||||
bold_font JetBrainsMono Nerd Font Bold
|
||||
italic_font JetBrainsMono Nerd Font SemiBold Italic
|
||||
bold_italic_font JetBrainsMono Nerd Font Bold Italic
|
||||
|
||||
font_size 11.0
|
||||
hide_window_decorations yes
|
||||
confirm_os_window_close 0
|
||||
window_padding_width 10
|
||||
|
||||
include ./themes/dc.conf
|
||||
22
.config/kitty/themes/dc.conf
Executable file
22
.config/kitty/themes/dc.conf
Executable file
|
|
@ -0,0 +1,22 @@
|
|||
# Sakura Line - sampled from bspwm/wallpaper/wallpaper.jpg
|
||||
background #0f0d17
|
||||
foreground #e9eefb
|
||||
cursor #92b9ea
|
||||
selection_background #2e2842
|
||||
selection_foreground #0f0d17
|
||||
color0 #0f0d17
|
||||
color8 #3a3350
|
||||
color1 #cf6a80
|
||||
color9 #e0798f
|
||||
color2 #8fae74
|
||||
color10 #a8c68d
|
||||
color3 #d8a87c
|
||||
color11 #e9c79b
|
||||
color4 #7c9ede
|
||||
color12 #92b9ea
|
||||
color5 #b483c0
|
||||
color13 #d0a4d8
|
||||
color6 #8ab6c4
|
||||
color14 #a3c0cb
|
||||
color7 #c9d1e2
|
||||
color15 #e9eefb
|
||||
28
.config/mimeapps.list
Normal file
28
.config/mimeapps.list
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
[Default Applications]
|
||||
x-scheme-handler/claude-cli=claude-code-url-handler.desktop
|
||||
x-scheme-handler/postman=Postman.desktop
|
||||
text/html=brave-browser.desktop
|
||||
x-scheme-handler/http=brave-browser.desktop
|
||||
x-scheme-handler/https=brave-browser.desktop
|
||||
x-scheme-handler/about=brave-browser.desktop
|
||||
x-scheme-handler/unknown=brave-browser.desktop
|
||||
x-scheme-handler/chrome=zen.desktop
|
||||
application/x-extension-htm=zen.desktop
|
||||
application/x-extension-html=zen.desktop
|
||||
application/x-extension-shtml=zen.desktop
|
||||
application/xhtml+xml=zen.desktop
|
||||
application/x-extension-xhtml=zen.desktop
|
||||
application/x-extension-xht=zen.desktop
|
||||
x-scheme-handler/claude=com.anthropic.Claude.desktop
|
||||
|
||||
[Added Associations]
|
||||
x-scheme-handler/http=zen.desktop;
|
||||
x-scheme-handler/https=zen.desktop;
|
||||
x-scheme-handler/chrome=zen.desktop;
|
||||
text/html=zen.desktop;
|
||||
application/x-extension-htm=zen.desktop;
|
||||
application/x-extension-html=zen.desktop;
|
||||
application/x-extension-shtml=zen.desktop;
|
||||
application/xhtml+xml=zen.desktop;
|
||||
application/x-extension-xhtml=zen.desktop;
|
||||
application/x-extension-xht=zen.desktop;
|
||||
|
|
@ -109,7 +109,7 @@ time = %H:%M
|
|||
[module/cpu]
|
||||
type = custom/script
|
||||
exec = "$HOME/.config/scripts/system-info.sh --cpu --normal-color '#92b9ea' --critical-color '#cf6a80'"
|
||||
click-left = "$HOME/bin/system-info.sh --cpu --click"
|
||||
click-left = "$HOME/.config/scripts/system-info.sh --cpu --click"
|
||||
format = "%{F#92b9ea}CPU%{F-} <label>"
|
||||
format-padding = 1
|
||||
interval = 2
|
||||
|
|
@ -124,7 +124,7 @@ interval = 2
|
|||
[module/gpu]
|
||||
type = custom/script
|
||||
exec = "$HOME/.config/scripts/system-info.sh --gpu --normal-color '#b483c0' --critical-color '#cf6a80'"
|
||||
click-left = "$HOME/bin/system-info.sh --gpu --click"
|
||||
click-left = "$HOME/.config/scripts/system-info.sh --gpu --click"
|
||||
format = "%{F#b483c0}GPU%{F-} <label>"
|
||||
format-padding = 1
|
||||
interval = 2
|
||||
|
|
@ -134,9 +134,9 @@ interval = 2
|
|||
type = custom/script
|
||||
exec = "SESSION_TYPE=x11 sh $HOME/.config/scripts/volume.sh --device output --status --disabled-color '#cf6a80' --enabled-color '#8fae74'"
|
||||
tail = true
|
||||
click-left = "sh $HOME/bin/volume.sh --device output --action toggle"
|
||||
scroll-up = "sh $HOME/bin/volume.sh --device output --action increase"
|
||||
scroll-down = "sh $HOME/bin/volume.sh --device output --action decrease"
|
||||
click-left = "sh $HOME/.config/scripts/volume.sh --device output --action toggle"
|
||||
scroll-up = "sh $HOME/.config/scripts/volume.sh --device output --action increase"
|
||||
scroll-down = "sh $HOME/.config/scripts/volume.sh --device output --action decrease"
|
||||
format = "%{F#8fae74}VOL%{F-} <label>"
|
||||
format-padding = 1
|
||||
|
||||
|
|
|
|||
|
|
@ -74,6 +74,10 @@ map_pkg() {
|
|||
gd) echo "libgd-dev" ;;
|
||||
xorg-xrandr) echo "x11-xserver-utils" ;;
|
||||
xorg-xprop) echo "x11-utils" ;;
|
||||
xorg-xrdb) echo "x11-xserver-utils" ;;
|
||||
xorg-xsetroot) echo "x11-xserver-utils" ;;
|
||||
wmname) echo "suckless-tools" ;;
|
||||
gtk3) echo "libgtk-3-0" ;;
|
||||
ttf-jetbrains-mono-nerd) echo "fonts-jetbrains-mono" ;;
|
||||
noto-fonts) echo "fonts-noto" ;;
|
||||
noto-fonts-emoji) echo "fonts-noto-color-emoji" ;;
|
||||
|
|
@ -97,6 +101,9 @@ map_pkg() {
|
|||
gd) echo "gd-devel" ;;
|
||||
xorg-xrandr) echo "xrandr" ;;
|
||||
xorg-xprop) echo "xprop" ;;
|
||||
xorg-xrdb) echo "xorg-x11-server-utils" ;;
|
||||
xorg-xsetroot) echo "xsetroot" ;;
|
||||
wmname) echo "suckless-tools" ;;
|
||||
ttf-jetbrains-mono-nerd) echo "jetbrains-mono-fonts" ;;
|
||||
noto-fonts) echo "google-noto-sans-fonts" ;;
|
||||
noto-fonts-emoji) echo "google-noto-emoji-fonts" ;;
|
||||
|
|
@ -156,7 +163,10 @@ deploy_dotfiles() {
|
|||
# Move anything that would be clobbered into a backup instead of losing it.
|
||||
mkdir -p "$BACKUP"
|
||||
local conflicts
|
||||
conflicts="$(dot checkout main 2>&1 | grep -oP '^\s+\K\S+\.\S+$' || true)"
|
||||
# git lists the offending paths indented by a tab; anything else it prints
|
||||
# in that message is flush-left prose. Matching on a dot in the name would
|
||||
# miss dotfiles like .bashrc, which is exactly what collides on a fresh box.
|
||||
conflicts="$(dot checkout main 2>&1 | sed -n 's/^[[:space:]]\{1,\}\([^[:space:]].*\)$/\1/p' || true)"
|
||||
if [ -n "$conflicts" ]; then
|
||||
say "backing up files that would be overwritten -> $BACKUP"
|
||||
while IFS= read -r f; do
|
||||
|
|
|
|||
|
|
@ -12,6 +12,10 @@ feh
|
|||
xdotool
|
||||
xorg-xrandr
|
||||
xorg-xprop
|
||||
xorg-xrdb
|
||||
xorg-xsetroot
|
||||
xsettingsd
|
||||
wmname
|
||||
|
||||
# --- build toolchain (st + particles) ---
|
||||
base-devel
|
||||
|
|
@ -41,19 +45,27 @@ aur:bibata-cursor-theme
|
|||
|
||||
# --- runtime deps the rice actually calls ---
|
||||
networkmanager
|
||||
wireplumber
|
||||
bluez
|
||||
bluez-utils
|
||||
pamixer
|
||||
playerctl
|
||||
libnotify
|
||||
gtk3
|
||||
python-gobject
|
||||
xclip
|
||||
flameshot
|
||||
i3lock
|
||||
aur:rofi-greenclip
|
||||
|
||||
# --- shell / editor / files ---
|
||||
fish
|
||||
neovim
|
||||
yazi
|
||||
|
||||
# --- apps ---
|
||||
thunar
|
||||
kitty
|
||||
fastfetch
|
||||
|
||||
# --- showcase toys ---
|
||||
|
|
|
|||
11
.config/user-dirs.dirs
Normal file
11
.config/user-dirs.dirs
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# This file is written by xdg-user-dirs-update
|
||||
# If you want to change or add directories, just edit the line you're
|
||||
# interested in. All local changes will be retained on the next run.
|
||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||
# absolute path. No other format is supported.
|
||||
#
|
||||
XDG_DOWNLOAD_DIR="$HOME/downloads/"
|
||||
XDG_DOCUMENTS_DIR="$HOME/documents/"
|
||||
XDG_PICTURES_DIR="$HOME/pictures/"
|
||||
XDG_VIDEOS_DIR="$HOME/videos/"
|
||||
12
.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml
Normal file
12
.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.1" encoding="UTF-8"?>
|
||||
|
||||
<channel name="thunar" version="1.0">
|
||||
<property name="last-view" type="string" value="ThunarIconView"/>
|
||||
<property name="last-icon-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_100_PERCENT"/>
|
||||
<property name="last-window-width" type="int" value="941"/>
|
||||
<property name="last-window-height" type="int" value="503"/>
|
||||
<property name="last-window-maximized" type="bool" value="true"/>
|
||||
<property name="last-details-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_38_PERCENT"/>
|
||||
<property name="last-details-view-column-widths" type="string" value="50,50,124,50,50,87,50,50,394,50,50,75,50,139"/>
|
||||
<property name="last-separator-position" type="int" value="170"/>
|
||||
</channel>
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
[manager]
|
||||
|
||||
prepend_keymap = [
|
||||
|
||||
{ on = ["+"], run = "cd /home/carrie", desc = "Home" },
|
||||
{ on = ["+", "f"], run = "cd /home/carrie/Documents", desc = "Documents" },
|
||||
{ on = ["+", "a"], run = "cd /home/carrie/Pictures", desc = "Pictures" },
|
||||
{ on = ["+", "c"], run = "cd /home/carrie/.config", desc = "Config" },
|
||||
{ on = ["+", "d"], run = "cd /home/carrie/Downloads", desc = "Downloads" },
|
||||
{ on = ["+", "v"], run = "cd /home/carrie/Videos", desc = "Videos" },
|
||||
{ on = ["+", "h"], run = "cd /drives", desc = "Drives" },
|
||||
]
|
||||
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
[manager] # <--- Use [manager], not [mgr]
|
||||
|
||||
# ... your other single-key bindings might go here ...
|
||||
|
||||
prepend_keymap = [
|
||||
|
||||
{ on = ["`", "`"], run = "cd /home/carrie", desc = "Home" },
|
||||
{ on = ["`", "f"], run = "cd /home/carrie/Documents", desc = "Documents" },
|
||||
{ on = ["`", "a"], run = "cd /home/carrie/Pictures", desc = "Pictures" },
|
||||
{ on = ["`", "c"], run = "cd /home/carrie/.config", desc = "Config" },
|
||||
{ on = ["`", "d"], run = "cd /home/carrie/Downloads", desc = "Downloads" },
|
||||
{ on = ["`", "v"], run = "cd /home/carrie/Videos", desc = "Videos" },
|
||||
{ on = ["`", "h"], run = "cd /drives", desc = "Drives" },
|
||||
|
||||
{ on = ["n", "f"], run = "create --dir", desc = "New Folder" },
|
||||
{ on = ["n", "d"], run = "create", desc = "New File" },
|
||||
|
||||
{ on = ["c", "x"], run = "cut", desc = "Cut File" },
|
||||
{ on = ["c", "c"], run = "yank", desc = "Copy File" },
|
||||
{ on = ["c", "v"], run = "paste", desc = "Paste File" },
|
||||
]
|
||||
|
||||
# Add the 'Right = "open"' line OUTSIDE and AFTER the list block.
|
||||
# Yazi reads simple key-value pairs like this separately from the list above.
|
||||
Right = "open"
|
||||
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
[manager] # <--- Use [manager], not [mgr]
|
||||
|
||||
# ... your other single-key bindings might go here ...
|
||||
|
||||
prepend_keymap = [
|
||||
|
||||
{ on = ["`", "`"], run = "cd /home/carrie", desc = "Home" },
|
||||
{ on = ["`", "f"], run = "cd /home/carrie/Documents", desc = "Documents" },
|
||||
{ on = ["`", "a"], run = "cd /home/carrie/Pictures", desc = "Pictures" },
|
||||
{ on = ["`", "c"], run = "cd /home/carrie/.config", desc = "Config" },
|
||||
{ on = ["`", "d"], run = "cd /home/carrie/Downloads", desc = "Downloads" },
|
||||
{ on = ["`", "v"], run = "cd /home/carrie/Videos", desc = "Videos" },
|
||||
{ on = ["`", "h"], run = "cd /drives", desc = "Drives" },
|
||||
|
||||
{ on = ["n", "f"], run = "create --dir", desc = "New Folder" },
|
||||
{ on = ["n", "d"], run = "create", desc = "New File" },
|
||||
|
||||
{ on = ["c", "x"], run = "cut", desc = "Cut File" },
|
||||
{ on = ["c", "c"], run = "yank", desc = "Copy File" },
|
||||
{ on = ["c", "v"], run = "paste", desc = "Paste File" },
|
||||
]
|
||||
|
||||
# Add the 'Right = "open"' line OUTSIDE and AFTER the list block.
|
||||
# Yazi reads simple key-value pairs like this separately from the list above.
|
||||
Right = "open"
|
||||
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
[manager]
|
||||
show_hidden = true
|
||||
|
||||
|
||||
[opener]
|
||||
|
||||
edit = [
|
||||
{ run = 'nvim "$@"', block = true },
|
||||
]
|
||||
|
||||
image = [
|
||||
{ run = 'feh "$@"', orphan = true },
|
||||
]
|
||||
|
||||
video = [
|
||||
{ run = 'mpv "$@"', orphan = true },
|
||||
]
|
||||
|
||||
audio = [
|
||||
{ run = 'strawberry "$@"', orphan = true },
|
||||
]
|
||||
|
||||
|
||||
[open]
|
||||
|
||||
rules = [
|
||||
{ name = "*.png", use = "image" },
|
||||
{ name = "*.jpg", use = "image" },
|
||||
{ name = "*.jpeg", use = "image" },
|
||||
{ name = "*.gif", use = "image" },
|
||||
{ name = "*.webp", use = "image" },
|
||||
|
||||
{ name = "*.mp4", use = "video" },
|
||||
{ name = "*.mkv", use = "video" },
|
||||
{ name = "*.webm", use = "video" },
|
||||
|
||||
{ name = "*.mp3", use = "audio" },
|
||||
{ name = "*.flac", use = "audio" },
|
||||
{ name = "*.wav", use = "audio" },
|
||||
{ name = "*.ogg", use = "audio" },
|
||||
|
||||
{ mime = "text/*", use = "edit" },
|
||||
]
|
||||
|
||||
1
.xinitrc
Normal file
1
.xinitrc
Normal file
|
|
@ -0,0 +1 @@
|
|||
exec bspwm
|
||||
67
README.md
Normal file
67
README.md
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
# dotfiles
|
||||
|
||||
Everything needed to rebuild my Arch + bspwm desktop on a bare machine:
|
||||
**Sakura Line**, a bspwm rice with a GTK control panel and a particle wallpaper layer.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
bash <(curl -fsSL https://git.srtk.in/sarthak/dotfiles/raw/branch/main/.config/rice/install.sh)
|
||||
```
|
||||
|
||||
That one command installs the packages, clones this repo, checks it out over
|
||||
`$HOME`, builds `st` and `particles`, and does the theming. It is safe to
|
||||
re-run, and nothing in `$HOME` is overwritten without being backed up to
|
||||
`~/.rice-backup-<timestamp>/` first.
|
||||
|
||||
Add `--dry-run` to see every step without changing anything.
|
||||
|
||||
**[→ Full rice documentation: keybindings, control panel, palette](.config/rice/README.md)**
|
||||
|
||||
## Why the repo looks like this
|
||||
|
||||
This is a [bare repo tracking `$HOME`](https://www.atlassian.com/git/tutorials/dotfiles),
|
||||
so paths are relative to your home directory and the top level only shows the
|
||||
dotfiles themselves — there is no `src/` or wrapper folder. The bootstrap lives
|
||||
at `.config/rice/install.sh` because that is where it lands on disk.
|
||||
|
||||
Manage it with:
|
||||
|
||||
```sh
|
||||
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
|
||||
dotfiles status
|
||||
dotfiles add .config/polybar/config.ini
|
||||
dotfiles commit -m "polybar: ..."
|
||||
dotfiles push
|
||||
```
|
||||
|
||||
That alias is in the tracked [`.bashrc`](.bashrc).
|
||||
|
||||
## What is in here
|
||||
|
||||
| path | what |
|
||||
|---|---|
|
||||
| [`.config/rice/`](.config/rice) | **the bootstrap** — `install.sh`, `packages.txt`, `st/config.h`, `particles/` |
|
||||
| [`.config/bspwm/`](.config/bspwm) | WM config, keybindings (`sxhkdrc`), picom, wallpaper |
|
||||
| [`.config/polybar/`](.config/polybar) | the bar and its launcher |
|
||||
| [`.config/scripts/`](.config/scripts) | control panel (GTK), volume, media, wallpaper, screenshots |
|
||||
| [`.config/rofi/`](.config/rofi) | launcher, clipboard and emoji menus |
|
||||
| [`.config/dunst/`](.config/dunst) | notifications |
|
||||
| [`.config/fish/`](.config/fish) | shell — prompt, functions, plugins |
|
||||
| [`.config/nvim/`](.config/nvim) | LazyVim setup |
|
||||
| [`.config/yazi/`](.config/yazi) | file manager, plugins and scripts |
|
||||
| [`.config/kitty/`](.config/kitty) | fallback terminal (`st` is the primary) |
|
||||
| [`.config/gtk-*/`, `.themes/`, `.config/qt*ct/`](.themes) | GTK 2/3/4 and Qt theming |
|
||||
| [`.config/btop/`, `.config/cava/`, `.config/fastfetch/`](.config/fastfetch) | the showcase toys |
|
||||
| [`.xinitrc`](.xinitrc) | starts bspwm |
|
||||
|
||||
Programs unrelated to the rice are deliberately not tracked.
|
||||
|
||||
## Requirements
|
||||
|
||||
Arch is the first-class target — `packages.txt` is a pacman list, with
|
||||
`aur:`-prefixed lines for the AUR extras. Debian/Ubuntu and Fedora are
|
||||
best-effort: `install.sh` maps the package names it can and skips the AUR bits.
|
||||
|
||||
Licensed MIT where the vendored sources say so (`st`, `particles`, yazi plugins
|
||||
keep their own upstream licenses).
|
||||
Loading…
Add table
Add a link
Reference in a new issue