3 Commits
Author SHA1 Message Date
bgrolleman be54b6b0ec Update niri settings for keybindings 2026-07-25 16:22:09 +02:00
bgrolleman f52815cc65 Add setup keychain ssh agent 2026-07-25 16:21:56 +02:00
bgrolleman 0835211ae9 Auto configure displays 2026-07-17 08:52:49 +02:00
8 changed files with 104 additions and 19 deletions
+15
View File
@@ -0,0 +1,15 @@
# Start keychain and source SSH agent variables for all private keys in ~/.ssh
if status is-interactive
if type -q keychain
set -l _ssh_keys
for _pub in ~/.ssh/*.pub
set -l _key (string replace -r '\.pub$' '' $_pub)
if test -f $_key
set -a _ssh_keys $_key
end
end
if test (count $_ssh_keys) -gt 0
keychain --eval --quiet $_ssh_keys | source
end
end
end
+4
View File
@@ -0,0 +1,4 @@
# Machine-specific config (secrets, local overrides) — not tracked in dotfiles
if test -f ~/.config/fish/local.fish
source ~/.config/fish/local.fish
end
+8
View File
@@ -0,0 +1,8 @@
profile ultrawide-hdmi {
output "DP-1" mode 5120x1440 position 0,0 scale 1
output "HDMI-A-1" mode 1920x1080 position 1600,1440 scale 1
}
profile ultrawide {
output "DP-1" mode 5120x1440 position 0,0 scale 1
}
+1
View File
@@ -2,3 +2,4 @@
// https://github.com/YaLTeR/niri/wiki/Configuration:-Miscellaneous#spawn-sh-at-startup // https://github.com/YaLTeR/niri/wiki/Configuration:-Miscellaneous#spawn-sh-at-startup
spawn-sh-at-startup "qs -c noctalia-shell" spawn-sh-at-startup "qs -c noctalia-shell"
spawn-at-startup "kanshi"
+13 -13
View File
@@ -9,7 +9,7 @@ binds {
//Mod+Shift+ESCAPE { show-hotkey-overlay; } //Mod+Shift+ESCAPE { show-hotkey-overlay; }
Mod+h { show-hotkey-overlay; } Mod+h { show-hotkey-overlay; }
Mod+Shift+S { spawn-sh "flameshot gui"; } Mod+Shift+S { spawn-sh "grim -g \"$(slurp)\" - | satty --filename - -o ~/Pictures/Screenshots/satty-%Y%m%d-%H%M%S.png --copy-command wl-copy --actions-on-enter save-to-clipboard --save-after-copy"; }
// ─── Applications ─── // ─── Applications ───
Alt+Return hotkey-overlay-title="Open Terminal: Alacritty" { spawn "alacritty"; } Alt+Return hotkey-overlay-title="Open Terminal: Alacritty" { spawn "alacritty"; }
@@ -102,22 +102,22 @@ binds {
// Mod+CTRL+Shift+WheelScrollDown { move-column-right; } // Mod+CTRL+Shift+WheelScrollDown { move-column-right; }
// Mod+CTRL+Shift+WheelScrollUp { move-column-left; } // Mod+CTRL+Shift+WheelScrollUp { move-column-left; }
Alt+1 { focus-workspace 1; } Alt+1 { focus-workspace "1"; }
Alt+2 { focus-workspace 2; } Alt+2 { focus-workspace "2"; }
Alt+3 { focus-workspace 3; } Alt+3 { focus-workspace "3"; }
Alt+4 { focus-workspace 4; } Alt+4 { focus-workspace "4"; }
Alt+5 { focus-workspace 5; } Alt+5 { focus-workspace "5"; }
Alt+6 { focus-workspace 6; } Alt+6 { focus-workspace "6"; }
Alt+7 { focus-workspace 7; } Alt+7 { focus-workspace 7; }
Alt+8 { focus-workspace 8; } Alt+8 { focus-workspace 8; }
Alt+9 { focus-workspace 9; } Alt+9 { focus-workspace 9; }
Alt+Shift+1 { move-column-to-workspace 1; } Alt+Shift+1 { move-column-to-workspace "1"; }
Alt+Shift+2 { move-column-to-workspace 2; } Alt+Shift+2 { move-column-to-workspace "2"; }
Alt+Shift+3 { move-column-to-workspace 3; } Alt+Shift+3 { move-column-to-workspace "3"; }
Alt+Shift+4 { move-column-to-workspace 4; } Alt+Shift+4 { move-column-to-workspace "4"; }
Alt+Shift+5 { move-column-to-workspace 5; } Alt+Shift+5 { move-column-to-workspace "5"; }
Alt+Shift+6 { move-column-to-workspace 6; } Alt+Shift+6 { move-column-to-workspace "6"; }
Alt+Shift+7 { move-column-to-workspace 7; } Alt+Shift+7 { move-column-to-workspace 7; }
Alt+Shift+8 { move-column-to-workspace 8; } Alt+Shift+8 { move-column-to-workspace 8; }
Alt+Shift+9 { move-column-to-workspace 9; } Alt+Shift+9 { move-column-to-workspace 9; }
+18 -2
View File
@@ -1,2 +1,18 @@
workspace "browser" workspace "1" {
workspace "chat" open-on-output "DP-1"
}
workspace "2" {
open-on-output "DP-1"
}
workspace "3" {
open-on-output "DP-1"
}
workspace "4" {
open-on-output "DP-1"
}
workspace "5" {
open-on-output "DP-1"
}
workspace "6" {
open-on-output "HDMI-A-1"
}
+17 -4
View File
@@ -60,6 +60,7 @@
"middleClickCommand": "", "middleClickCommand": "",
"middleClickFollowMouse": false, "middleClickFollowMouse": false,
"monitors": [ "monitors": [
"DP-1"
], ],
"mouseWheelAction": "none", "mouseWheelAction": "none",
"mouseWheelWrap": true, "mouseWheelWrap": true,
@@ -149,7 +150,7 @@
"hideUnoccupied": false, "hideUnoccupied": false,
"iconScale": 0.8, "iconScale": 0.8,
"id": "Workspace", "id": "Workspace",
"labelMode": "index", "labelMode": "name",
"occupiedColor": "secondary", "occupiedColor": "secondary",
"pillSize": 0.6, "pillSize": 0.6,
"showApplications": false, "showApplications": false,
@@ -182,6 +183,18 @@
"pinned": [ "pinned": [
] ]
}, },
{
"displayMode": "onhover",
"iconColor": "none",
"id": "Network",
"textColor": "none"
},
{
"displayMode": "onhover",
"iconColor": "none",
"id": "Bluetooth",
"textColor": "none"
},
{ {
"hideWhenZero": false, "hideWhenZero": false,
"hideWhenZeroUnread": false, "hideWhenZeroUnread": false,
@@ -341,7 +354,7 @@
"groupClickAction": "cycle", "groupClickAction": "cycle",
"groupContextMenuMode": "extended", "groupContextMenuMode": "extended",
"groupIndicatorStyle": "dots", "groupIndicatorStyle": "dots",
"inactiveIndicators": false, "inactiveIndicators": true,
"indicatorColor": "primary", "indicatorColor": "primary",
"indicatorOpacity": 0.6, "indicatorOpacity": 0.6,
"indicatorThickness": 3, "indicatorThickness": 3,
@@ -475,8 +488,8 @@
"bluetoothRssiPollIntervalMs": 60000, "bluetoothRssiPollIntervalMs": 60000,
"bluetoothRssiPollingEnabled": false, "bluetoothRssiPollingEnabled": false,
"disableDiscoverability": false, "disableDiscoverability": false,
"networkPanelView": "wifi", "networkPanelView": "ethernet",
"wifiDetailsViewMode": "grid" "wifiDetailsViewMode": "list"
}, },
"nightLight": { "nightLight": {
"autoSchedule": true, "autoSchedule": true,
+28
View File
@@ -14,6 +14,20 @@ link() {
ln -s "$2" "$1" ln -s "$2" "$1"
fi fi
} }
# Like link(), but backs up existing regular files instead of skipping them
smartlink() {
local target="$1" source="$2"
echo "Linking $target to $source"
if [ -L "$target" ]; then
: # already a symlink, nothing to do
elif [ -e "$target" ]; then
mv "$target" "${target}.bak"
echo " Backed up existing file to ${target}.bak"
ln -s "$source" "$target"
else
ln -s "$source" "$target"
fi
}
configlink() { configlink() {
link ~/.config/$1 ~/.dotfiles/$1 link ~/.config/$1 ~/.dotfiles/$1
} }
@@ -29,6 +43,20 @@ configlink polybar
configlink picom.conf configlink picom.conf
configlink niri configlink niri
configlink noctalia configlink noctalia
configlink kanshi
checkdir ~/.claude checkdir ~/.claude
link ~/.claude/settings.json ~/.dotfiles/claude/settings.json link ~/.claude/settings.json ~/.dotfiles/claude/settings.json
# Fish shell config
checkdir ~/.config/fish
checkdir ~/.config/fish/conf.d
smartlink ~/.config/fish/config.fish ~/.dotfiles/fish/config.fish
link ~/.config/fish/conf.d/ssh-keychain.fish ~/.dotfiles/fish/conf.d/ssh-keychain.fish
# Migrate BW_SESSION and other machine-specific fish vars to local.fish
if [ -f ~/.config/fish/config.fish.bak ] && [ ! -f ~/.config/fish/local.fish ]; then
echo " Migrating machine-specific config from config.fish.bak to local.fish"
grep -v '^#' ~/.config/fish/config.fish.bak | grep -v '^\s*$' > ~/.config/fish/local.fish
echo " Review ~/.config/fish/local.fish and remove anything now handled by dotfiles"
fi