reorganise configs into subdirectories, add hyprland config and keybindings
- Move i3, sway, waybar, wofi configs into their own subdirectories - Add hyprland/hyprland.conf (converted from i3 config) - Add waybar configs for hyprland and sway - Update README with new symlink paths and Hyprland keybindings table - Add hatsune-miku cursor submodule Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[submodule "hatsune-miku-windows-linux-cursors"]
|
||||||
|
path = hatsune-miku-windows-linux-cursors
|
||||||
|
url = https://github.com/supermariofps/hatsune-miku-windows-linux-cursors.git
|
||||||
86
README.md
86
README.md
@@ -7,7 +7,9 @@ A collection of Linux scripts and configs for use across multiple machines.
|
|||||||
When referring to `{repo_dir}`, use absolute paths (e.g., `~/scripts`).
|
When referring to `{repo_dir}`, use absolute paths (e.g., `~/scripts`).
|
||||||
|
|
||||||
### alacritty configuration
|
### alacritty configuration
|
||||||
|
|
||||||
Add this to the `.config/alacritty/alacritty.toml`
|
Add this to the `.config/alacritty/alacritty.toml`
|
||||||
|
|
||||||
```
|
```
|
||||||
import = [
|
import = [
|
||||||
"{repo_dir}/alacritty.toml"
|
"{repo_dir}/alacritty.toml"
|
||||||
@@ -15,13 +17,16 @@ import = [
|
|||||||
```
|
```
|
||||||
|
|
||||||
### tmux Configuration
|
### tmux Configuration
|
||||||
|
|
||||||
This config uses tmux plugin manager to add session save / reloading with tmux-ressurect.
|
This config uses tmux plugin manager to add session save / reloading with tmux-ressurect.
|
||||||
Before using the config, please download the plugin manager with:
|
Before using the config, please download the plugin manager with:
|
||||||
|
|
||||||
```
|
```
|
||||||
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||||
```
|
```
|
||||||
|
|
||||||
Then to use the config file, add to `~/.tmux.conf`:
|
Then to use the config file, add to `~/.tmux.conf`:
|
||||||
|
|
||||||
```
|
```
|
||||||
source {repo_dir}/tmux.conf
|
source {repo_dir}/tmux.conf
|
||||||
```
|
```
|
||||||
@@ -29,6 +34,7 @@ source {repo_dir}/tmux.conf
|
|||||||
### Bash/Zsh Configuration
|
### Bash/Zsh Configuration
|
||||||
|
|
||||||
Add to `~/.bashrc` or `~/.zshrc`:
|
Add to `~/.bashrc` or `~/.zshrc`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
source {repo_dir}/bashrc # or zshrc
|
source {repo_dir}/bashrc # or zshrc
|
||||||
export PATH="{repo_dir}/sh:$PATH"
|
export PATH="{repo_dir}/sh:$PATH"
|
||||||
@@ -37,15 +43,37 @@ export PATH="{repo_dir}/sh:$PATH"
|
|||||||
### Vim Configuration
|
### Vim Configuration
|
||||||
|
|
||||||
Add to `~/.vimrc`:
|
Add to `~/.vimrc`:
|
||||||
|
|
||||||
```
|
```
|
||||||
source {repo_dir}/vimrc
|
source {repo_dir}/vimrc
|
||||||
```
|
```
|
||||||
|
|
||||||
### i3 Configuration
|
### i3 Configuration
|
||||||
|
|
||||||
Add to `~/.i3/config`:
|
```bash
|
||||||
|
ln -s {repo_dir}/i3/i3config ~/.config/i3/config
|
||||||
|
ln -s {repo_dir}/i3/i3blocks.conf ~/.config/i3blocks/config
|
||||||
|
ln -s {repo_dir}/i3/i3status.conf ~/.config/i3status/config
|
||||||
```
|
```
|
||||||
include {repo_dir}/i3config
|
|
||||||
|
### Hyprland Configuration
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ln -s {repo_dir}/hyprland/hyprland.conf ~/.config/hypr/hyprland.conf
|
||||||
|
ln -s {repo_dir}/waybar/waybar_hyprland_config.json ~/.config/waybar/config
|
||||||
|
```
|
||||||
|
|
||||||
|
### Sway Configuration
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ln -s {repo_dir}/sway/swayconfig ~/.config/sway/config
|
||||||
|
ln -s {repo_dir}/waybar/waybar_sway_config.json ~/.config/waybar/config
|
||||||
|
```
|
||||||
|
|
||||||
|
### Wofi Configuration
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ln -s {repo_dir}/wofi/wofi_style.css ~/.config/wofi/style.css
|
||||||
```
|
```
|
||||||
|
|
||||||
## Keybindings
|
## Keybindings
|
||||||
@@ -53,7 +81,7 @@ include {repo_dir}/i3config
|
|||||||
### tmux Keybindings
|
### tmux Keybindings
|
||||||
|
|
||||||
| Keybinding | Description |
|
| Keybinding | Description |
|
||||||
|------------|-------------|
|
| ----------------------------------------------------------------------- | --------------------------------------------- |
|
||||||
| <kbd>M-f</kbd> | Prefix key (similar to <kbd>$mod</kbd> in i3) |
|
| <kbd>M-f</kbd> | Prefix key (similar to <kbd>$mod</kbd> in i3) |
|
||||||
| <kbd>Prefix</kbd> + <kbd>Space</kbd> | Send prefix |
|
| <kbd>Prefix</kbd> + <kbd>Space</kbd> | Send prefix |
|
||||||
| <kbd>Prefix</kbd> + <kbd>Ctrl</kbd> + <kbd>s</kbd> | Save session |
|
| <kbd>Prefix</kbd> + <kbd>Ctrl</kbd> + <kbd>s</kbd> | Save session |
|
||||||
@@ -73,10 +101,60 @@ include {repo_dir}/i3config
|
|||||||
| <kbd>Prefix</kbd> + <kbd>!</kbd>-<kbd>)</kbd> | Move current pane to window 1-10 |
|
| <kbd>Prefix</kbd> + <kbd>!</kbd>-<kbd>)</kbd> | Move current pane to window 1-10 |
|
||||||
| <kbd>Prefix</kbd> + <kbd>q</kbd> | Kill selected pane |
|
| <kbd>Prefix</kbd> + <kbd>q</kbd> | Kill selected pane |
|
||||||
|
|
||||||
|
### Hyprland Keybindings
|
||||||
|
|
||||||
|
| Keybinding | Description |
|
||||||
|
| ------------------------------------------------------------------------------------------- | ---------------------------------------- |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Return</kbd> | Start terminal (kitty) |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Shift</kbd> + <kbd>q</kbd> | Kill focused window |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>d</kbd> | Launch wofi |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Ctrl</kbd> + <kbd>m</kbd> | Launch PulseAudio control |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>F2</kbd> | Launch Waterfox browser |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>F3</kbd> | Launch file manager (ranger) |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Shift</kbd> + <kbd>F3</kbd> | Launch PCManFM |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>F5</kbd> | Launch mocp music player |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Shift</kbd> + <kbd>d</kbd> | Restart dunst |
|
||||||
|
| <kbd>Print</kbd> | Screenshot (flameshot gui) |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Print</kbd> | Screenshot region to clipboard |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Shift</kbd> + <kbd>Print</kbd> | Screenshot region to file |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Ctrl</kbd> + <kbd>x</kbd> | Kill window (hyprctl kill) |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>9</kbd> | Lock screen (hyprlock) |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>m</kbd> | Toggle waybar visibility |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Shift</kbd> + <kbd>c</kbd> | Reload Hyprland config |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Shift</kbd> + <kbd>e</kbd> | Exit Hyprland |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>0</kbd> | Enter system submap (lock/suspend/etc.) |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>h</kbd>/<kbd>j</kbd>/<kbd>k</kbd>/<kbd>l</kbd> | Move focus (left/down/up/right) |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Shift</kbd> + <kbd>h</kbd>/<kbd>j</kbd>/<kbd>k</kbd>/<kbd>l</kbd> | Move window (left/down/up/right) |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>f</kbd> | Toggle fullscreen |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>g</kbd>/<kbd>v</kbd> | Tile horizontally/vertically |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>e</kbd> | Toggle split |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Shift</kbd> + <kbd>Space</kbd> | Toggle floating |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Shift</kbd> + <kbd>s</kbd> | Pin floating window |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>-</kbd> | Toggle scratchpad |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Shift</kbd> + <kbd>-</kbd> | Move to scratchpad |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>b</kbd> | Switch to previous workspace |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Ctrl</kbd> + <kbd>←</kbd>/<kbd>→</kbd> | Previous/next workspace |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>1</kbd>-<kbd>8</kbd> | Switch to workspace 1-8 |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Shift</kbd> + <kbd>1</kbd>-<kbd>8</kbd> | Move window to workspace 1-8 |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>Ctrl</kbd> + <kbd>1</kbd>-<kbd>8</kbd> | Move window to workspace silently |
|
||||||
|
| <kbd>$mod</kbd> + <kbd>r</kbd> | Enter resize submap (hjkl to resize) |
|
||||||
|
|
||||||
|
#### System submap (<kbd>$mod</kbd> + <kbd>0</kbd>)
|
||||||
|
|
||||||
|
| Key | Action |
|
||||||
|
| --------------------------------- | --------- |
|
||||||
|
| <kbd>l</kbd> | Lock |
|
||||||
|
| <kbd>s</kbd> | Suspend |
|
||||||
|
| <kbd>h</kbd> | Hibernate |
|
||||||
|
| <kbd>r</kbd> | Reboot |
|
||||||
|
| <kbd>Shift</kbd> + <kbd>s</kbd> | Power off |
|
||||||
|
| <kbd>e</kbd> | Exit |
|
||||||
|
| <kbd>Return</kbd>/<kbd>Esc</kbd> | Cancel |
|
||||||
|
|
||||||
### i3 Keybindings
|
### i3 Keybindings
|
||||||
|
|
||||||
| Keybinding | Description |
|
| Keybinding | Description |
|
||||||
|------------|-------------|
|
| ---------------------------------------------------------------------------------------- | --------------------------------- |
|
||||||
| <kbd>$mod</kbd> + <kbd>Return</kbd> | Start a terminal (Alacritty) |
|
| <kbd>$mod</kbd> + <kbd>Return</kbd> | Start a terminal (Alacritty) |
|
||||||
| <kbd>$mod</kbd> + <kbd>Shift</kbd> + <kbd>q</kbd> | Kill focused window |
|
| <kbd>$mod</kbd> + <kbd>Shift</kbd> + <kbd>q</kbd> | Kill focused window |
|
||||||
| <kbd>$mod</kbd> + <kbd>d</kbd> | Start program launcher (dmenu) |
|
| <kbd>$mod</kbd> + <kbd>d</kbd> | Start program launcher (dmenu) |
|
||||||
|
|||||||
1
hatsune-miku-windows-linux-cursors
Submodule
1
hatsune-miku-windows-linux-cursors
Submodule
Submodule hatsune-miku-windows-linux-cursors added at 471ff88156
345
hyprland/hyprland.conf
Normal file
345
hyprland/hyprland.conf
Normal file
@@ -0,0 +1,345 @@
|
|||||||
|
# Hyprland config - converted from i3 config by Adam French
|
||||||
|
# https://wiki.hyprland.org/Configuring/
|
||||||
|
|
||||||
|
################
|
||||||
|
### MONITORS ###
|
||||||
|
################
|
||||||
|
|
||||||
|
monitor=,preferred,auto,1
|
||||||
|
|
||||||
|
|
||||||
|
###################
|
||||||
|
### MY PROGRAMS ###
|
||||||
|
###################
|
||||||
|
|
||||||
|
$terminal = kitty
|
||||||
|
$fileManager = kitty -e ranger
|
||||||
|
$menu = wofi --show run
|
||||||
|
|
||||||
|
###################
|
||||||
|
### CURSOR ###
|
||||||
|
###################
|
||||||
|
|
||||||
|
env = XCURSOR_THEME,Bibata-Modern-Classic
|
||||||
|
env = XCURSOR_SIZE,32
|
||||||
|
|
||||||
|
#################
|
||||||
|
### AUTOSTART ###
|
||||||
|
#################
|
||||||
|
|
||||||
|
exec-once = fcitx5
|
||||||
|
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||||
|
exec-once = nm-applet
|
||||||
|
exec-once = clipit
|
||||||
|
exec-once = dunst
|
||||||
|
exec-once = hypridle # replaces xautolock; configure lock in hypridle.conf
|
||||||
|
exec-once = waterfox
|
||||||
|
exec-once = steam
|
||||||
|
exec-once = surfshark
|
||||||
|
exec-once = waybar
|
||||||
|
# exec-once = volctl # may need a Wayland-compatible tray volume tool
|
||||||
|
# exec-once = pamac-tray # check for Wayland support
|
||||||
|
# NOTE: ff-theme-util and fix_xcursor are X11-specific; drop or find Wayland equivalents
|
||||||
|
# Caps<->Escape swap is handled below via input config
|
||||||
|
|
||||||
|
|
||||||
|
#############################
|
||||||
|
### ENVIRONMENT VARIABLES ###
|
||||||
|
#############################
|
||||||
|
|
||||||
|
env = XCURSOR_SIZE,24
|
||||||
|
env = HYPRCURSOR_SIZE,24
|
||||||
|
|
||||||
|
|
||||||
|
#####################
|
||||||
|
### LOOK AND FEEL ###
|
||||||
|
#####################
|
||||||
|
|
||||||
|
general {
|
||||||
|
gaps_in = 5 # inner gaps (i3: gaps inner 10 → split between two sides)
|
||||||
|
gaps_out = 0 # outer gaps (i3: gaps outer 0)
|
||||||
|
border_size = 1
|
||||||
|
|
||||||
|
col.active_border = rgb(C792EA)
|
||||||
|
col.inactive_border = rgb(6272A4)
|
||||||
|
|
||||||
|
resize_on_border = true
|
||||||
|
allow_tearing = false
|
||||||
|
layout = master # closest to i3's stacking default; use dwindle for split
|
||||||
|
}
|
||||||
|
|
||||||
|
decoration {
|
||||||
|
rounding = 0
|
||||||
|
|
||||||
|
active_opacity = 1.0
|
||||||
|
inactive_opacity = 1.0
|
||||||
|
|
||||||
|
shadow {
|
||||||
|
enabled = false
|
||||||
|
}
|
||||||
|
|
||||||
|
blur {
|
||||||
|
enabled = true
|
||||||
|
size = 3
|
||||||
|
passes = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
animations {
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||||
|
|
||||||
|
animation = windows, 1, 7, myBezier
|
||||||
|
animation = windowsOut, 1, 7, default, popin 80%
|
||||||
|
animation = border, 1, 10, default
|
||||||
|
animation = borderangle, 1, 8, default
|
||||||
|
animation = fade, 1, 7, default
|
||||||
|
animation = workspaces, 1, 6, default
|
||||||
|
}
|
||||||
|
|
||||||
|
master {
|
||||||
|
new_status = slave
|
||||||
|
}
|
||||||
|
|
||||||
|
misc {
|
||||||
|
force_default_wallpaper = 0
|
||||||
|
disable_hyprland_logo = true
|
||||||
|
focus_on_activate = true # replaces i3's "for_window [urgent=latest] focus"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#############
|
||||||
|
### INPUT ###
|
||||||
|
#############
|
||||||
|
|
||||||
|
input {
|
||||||
|
kb_layout = gb
|
||||||
|
kb_options = caps:swapescape
|
||||||
|
follow_mouse = 1
|
||||||
|
sensitivity = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
###################
|
||||||
|
### KEYBINDINGS ###
|
||||||
|
###################
|
||||||
|
|
||||||
|
$mod = SUPER
|
||||||
|
|
||||||
|
# Terminal
|
||||||
|
bind = $mod, Return, exec, $terminal
|
||||||
|
|
||||||
|
# Kill focused window
|
||||||
|
bind = $mod SHIFT, Q, killactive
|
||||||
|
|
||||||
|
# Launcher (wofi replaces dmenu)
|
||||||
|
bind = $mod, D, exec, wofi --show run --style ~/scripts/wofi/wofi_style.css
|
||||||
|
# To approximate your dmenu colors, configure wofi's style.css
|
||||||
|
|
||||||
|
# Pavucontrol
|
||||||
|
bind = $mod CTRL, M, exec, pavucontrol
|
||||||
|
|
||||||
|
# Applications
|
||||||
|
bind = $mod, F2, exec, waterfox
|
||||||
|
bind = $mod, F3, exec, $fileManager
|
||||||
|
bind = $mod SHIFT, F3, exec, pcmanfm
|
||||||
|
bind = $mod, F5, exec, kitty -e mocp
|
||||||
|
|
||||||
|
# Compositor toggle (picom → hyprland manages its own compositor; these are no-ops)
|
||||||
|
# bind = $mod, T, exec, pkill picom
|
||||||
|
# bind = $mod CTRL, T, exec, picom -b
|
||||||
|
|
||||||
|
# Restart dunst
|
||||||
|
bind = $mod SHIFT, D, exec, killall dunst && notify-send 'restart dunst'
|
||||||
|
|
||||||
|
# Screenshots (flameshot on Wayland needs -g flag or use grim/slurp instead)
|
||||||
|
bind = , Print, exec, flameshot gui
|
||||||
|
bind = $mod, Print, exec, grim -g "$(slurp)" - | wl-copy
|
||||||
|
bind = $mod SHIFT, Print, exec, grim -g "$(slurp)" ~/screenshot.png
|
||||||
|
|
||||||
|
# Xkill equivalent
|
||||||
|
bind = $mod CTRL, X, exec, hyprctl kill
|
||||||
|
|
||||||
|
# Lock screen
|
||||||
|
bind = $mod, 9, exec, hyprlock # replaces blurlock; configure hyprlock separately
|
||||||
|
|
||||||
|
# Toggle bar visibility (waybar)
|
||||||
|
bind = $mod, M, exec, pkill -SIGUSR1 waybar
|
||||||
|
|
||||||
|
# Reload Hyprland config
|
||||||
|
bind = $mod SHIFT, C, exec, hyprctl reload
|
||||||
|
|
||||||
|
# Exit Hyprland
|
||||||
|
bind = $mod SHIFT, E, exec, hyprctl dispatch exit
|
||||||
|
|
||||||
|
# System mode (replaces i3's $mode_system)
|
||||||
|
# Simple submap equivalent:
|
||||||
|
bind = $mod, 0, submap, system
|
||||||
|
submap = system
|
||||||
|
bind = , L, exec, hyprlock
|
||||||
|
bind = , L, submap, reset
|
||||||
|
bind = , S, exec, systemctl suspend
|
||||||
|
bind = , S, submap, reset
|
||||||
|
bind = , H, exec, systemctl hibernate
|
||||||
|
bind = , H, submap, reset
|
||||||
|
bind = , R, exec, systemctl reboot
|
||||||
|
bind = , R, submap, reset
|
||||||
|
bind = SHIFT, S, exec, systemctl poweroff
|
||||||
|
bind = SHIFT, S, submap, reset
|
||||||
|
bind = , E, exec, hyprctl dispatch exit
|
||||||
|
bind = , E, submap, reset
|
||||||
|
bind = , Return, submap, reset
|
||||||
|
bind = , Escape, submap, reset
|
||||||
|
submap = reset
|
||||||
|
|
||||||
|
# --- FOCUS ---
|
||||||
|
bind = $mod, H, movefocus, l
|
||||||
|
bind = $mod, J, movefocus, d
|
||||||
|
bind = $mod, K, movefocus, u
|
||||||
|
bind = $mod, L, movefocus, r
|
||||||
|
bind = $mod, left, movefocus, l
|
||||||
|
bind = $mod, down, movefocus, d
|
||||||
|
bind = $mod, up, movefocus, u
|
||||||
|
bind = $mod, right, movefocus, r
|
||||||
|
|
||||||
|
# --- MOVE WINDOWS ---
|
||||||
|
bind = $mod SHIFT, H, movewindow, l
|
||||||
|
bind = $mod SHIFT, J, movewindow, d
|
||||||
|
bind = $mod SHIFT, K, movewindow, u
|
||||||
|
bind = $mod SHIFT, L, movewindow, r
|
||||||
|
bind = $mod SHIFT, left, movewindow, l
|
||||||
|
bind = $mod SHIFT, down, movewindow, d
|
||||||
|
bind = $mod SHIFT, up, movewindow, u
|
||||||
|
bind = $mod SHIFT, right, movewindow, r
|
||||||
|
|
||||||
|
# --- FLOATING ---
|
||||||
|
bind = $mod SHIFT, space, togglefloating
|
||||||
|
bind = $mod, space, focusurgentorlast # approximate focus mode_toggle
|
||||||
|
|
||||||
|
# --- FULLSCREEN ---
|
||||||
|
bind = $mod, F, fullscreen, 0
|
||||||
|
|
||||||
|
# --- SPLIT / LAYOUT ---
|
||||||
|
# Hyprland uses dwindle preselect or master swaps; approximate below:
|
||||||
|
bind = $mod, G, layoutmsg, orientationleft # tile horizontally
|
||||||
|
bind = $mod, V, layoutmsg, orientationbottom # tile vertically
|
||||||
|
bind = $mod, E, layoutmsg, togglesplit
|
||||||
|
|
||||||
|
# --- STICKY (pin floating window) ---
|
||||||
|
bind = $mod SHIFT, S, pin
|
||||||
|
|
||||||
|
# --- SCRATCHPAD ---
|
||||||
|
bind = $mod SHIFT, minus, movetoworkspacesilent, special:scratchpad
|
||||||
|
bind = $mod, minus, togglespecialworkspace, scratchpad
|
||||||
|
|
||||||
|
# --- WORKSPACE NAVIGATION ---
|
||||||
|
bind = $mod CTRL, right, workspace, +1
|
||||||
|
bind = $mod CTRL, left, workspace, -1
|
||||||
|
bind = $mod, B, workspace, previous # back_and_forth
|
||||||
|
|
||||||
|
# Switch to workspace
|
||||||
|
bind = $mod, 1, workspace, 1
|
||||||
|
bind = $mod, 2, workspace, 2
|
||||||
|
bind = $mod, 3, workspace, 3
|
||||||
|
bind = $mod, 4, workspace, 4
|
||||||
|
bind = $mod, 5, workspace, 5
|
||||||
|
bind = $mod, 6, workspace, 6
|
||||||
|
bind = $mod, 7, workspace, 7
|
||||||
|
bind = $mod, 8, workspace, 8
|
||||||
|
|
||||||
|
# Move container to workspace (silent = don't follow)
|
||||||
|
bind = $mod CTRL, 1, movetoworkspacesilent, 1
|
||||||
|
bind = $mod CTRL, 2, movetoworkspacesilent, 2
|
||||||
|
bind = $mod CTRL, 3, movetoworkspacesilent, 3
|
||||||
|
bind = $mod CTRL, 4, movetoworkspacesilent, 4
|
||||||
|
bind = $mod CTRL, 5, movetoworkspacesilent, 5
|
||||||
|
bind = $mod CTRL, 6, movetoworkspacesilent, 6
|
||||||
|
bind = $mod CTRL, 7, movetoworkspacesilent, 7
|
||||||
|
bind = $mod CTRL, 8, movetoworkspacesilent, 8
|
||||||
|
|
||||||
|
# Move to workspace AND follow (replaces $mod+Shift+N in i3)
|
||||||
|
bind = $mod SHIFT, 1, movetoworkspace, 1
|
||||||
|
bind = $mod SHIFT, 2, movetoworkspace, 2
|
||||||
|
bind = $mod SHIFT, 3, movetoworkspace, 3
|
||||||
|
bind = $mod SHIFT, 4, movetoworkspace, 4
|
||||||
|
bind = $mod SHIFT, 5, movetoworkspace, 5
|
||||||
|
bind = $mod SHIFT, 6, movetoworkspace, 6
|
||||||
|
bind = $mod SHIFT, 7, movetoworkspace, 7
|
||||||
|
bind = $mod SHIFT, 8, movetoworkspace, 8
|
||||||
|
|
||||||
|
# --- RESIZE SUBMAP ---
|
||||||
|
bind = $mod, R, submap, resize
|
||||||
|
submap = resize
|
||||||
|
binde = , H, resizeactive, -20 0
|
||||||
|
binde = , J, resizeactive, 0 20
|
||||||
|
binde = , K, resizeactive, 0 -20
|
||||||
|
binde = , L, resizeactive, 20 0
|
||||||
|
binde = , left, resizeactive, -30 0
|
||||||
|
binde = , down, resizeactive, 0 30
|
||||||
|
binde = , up, resizeactive, 0 -30
|
||||||
|
binde = , right, resizeactive, 30 0
|
||||||
|
bind = , Return, submap, reset
|
||||||
|
bind = , Escape, submap, reset
|
||||||
|
submap = reset
|
||||||
|
|
||||||
|
# --- MOUSE BINDS ---
|
||||||
|
bindm = $mod, mouse:272, movewindow # mod+LMB drag to move floating
|
||||||
|
bindm = $mod, mouse:273, resizewindow # mod+RMB drag to resize
|
||||||
|
|
||||||
|
# --- AUDIO ---
|
||||||
|
bindel = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +10%
|
||||||
|
bindel = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -10%
|
||||||
|
bindl = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
|
bindl = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||||
|
|
||||||
|
# --- BRIGHTNESS ---
|
||||||
|
bindel = , XF86MonBrightnessUp, exec, brightnessctl set +5%
|
||||||
|
bindel = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
|
||||||
|
|
||||||
|
|
||||||
|
##############################
|
||||||
|
### WORKSPACE NAMES / ICONS ##
|
||||||
|
##############################
|
||||||
|
|
||||||
|
# Hyprland workspace names (replaces i3 set $ws variables)
|
||||||
|
# These are used by waybar's workspaces module — configure names there.
|
||||||
|
# ws1=ツ ws2=ಠ‿ಠ ws3=◕‿◕ ws4=ʘ‿ʘ
|
||||||
|
# ws5=˘◡˘ ws6=◠‿◠ ws7=ᵔᴥᵔ ws8=æ
|
||||||
|
|
||||||
|
|
||||||
|
##############################
|
||||||
|
### COLORS (reference only) ##
|
||||||
|
##############################
|
||||||
|
|
||||||
|
# Your theme palette for use in waybar / wofi CSS:
|
||||||
|
# Background: #1A1B2F
|
||||||
|
# Accent 1: #C792EA (purple)
|
||||||
|
# Accent 2: #FF79C6 (pink)
|
||||||
|
# Accent 3: #82AAFF (blue)
|
||||||
|
# Inactive: #6272A4
|
||||||
|
# Surface: #2A2B3D
|
||||||
|
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
### NOTES ON MIGRATING FROM i3 ##
|
||||||
|
#####################################
|
||||||
|
# 1. BAR: Replace i3bar+i3status with waybar. Copy the color palette above
|
||||||
|
# into your waybar style.css. Workspace icon names go in waybar config.
|
||||||
|
#
|
||||||
|
# 2. LOCK: Replace blurlock with hyprlock. Configure in ~/.config/hypr/hyprlock.conf
|
||||||
|
# Replace xautolock with hypridle in ~/.config/hypr/hypridle.conf (30 min timeout).
|
||||||
|
#
|
||||||
|
# 3. LAUNCHER: wofi replaces dmenu. Style with ~/.config/wofi/style.css using
|
||||||
|
# your palette colors above.
|
||||||
|
#
|
||||||
|
# 4. SCREENSHOTS: grim + slurp replace i3-scrot on Wayland. flameshot also
|
||||||
|
# works with the -g flag on some setups.
|
||||||
|
#
|
||||||
|
# 5. STACKING layout: Set layout = master above (or dwindle). Hyprland has no
|
||||||
|
# direct stacking mode; use floating or master layout as closest equivalent.
|
||||||
|
#
|
||||||
|
# 6. GAP MODE: Replace the i3-gaps mode with direct hyprctl commands if needed:
|
||||||
|
# hyprctl keyword general:gaps_in 10
|
||||||
|
#
|
||||||
|
# 7. BORDER TOGGLE ($mod+u/y/n): Use windowrulev2 or hyprctl at runtime:
|
||||||
|
# hyprctl keyword general:border_size 0
|
||||||
37
packages.txt
37
packages.txt
@@ -1,14 +1,32 @@
|
|||||||
|
ly
|
||||||
|
|
||||||
|
wayland
|
||||||
|
xorg-xwayland
|
||||||
|
wl-clipboard
|
||||||
|
qt5-wayland
|
||||||
|
qt6-wayland
|
||||||
|
xdg-desktop-portal-hyprland
|
||||||
|
|
||||||
|
sway
|
||||||
|
swaybg
|
||||||
|
swayidle
|
||||||
|
swaylock
|
||||||
|
|
||||||
|
hyprland
|
||||||
|
hyprpaper
|
||||||
|
hypridle
|
||||||
|
hyprlock
|
||||||
|
|
||||||
|
waybar
|
||||||
|
wofi
|
||||||
|
|
||||||
|
grim
|
||||||
|
slurp
|
||||||
|
|
||||||
|
mako
|
||||||
brightnessctl
|
brightnessctl
|
||||||
pactl
|
|
||||||
i3exit
|
|
||||||
i3blocks
|
|
||||||
i3-wm
|
|
||||||
i3status
|
|
||||||
xautolock
|
|
||||||
|
|
||||||
lxappearance
|
lxappearance
|
||||||
dunst
|
|
||||||
nitrogen
|
|
||||||
|
|
||||||
gimp
|
gimp
|
||||||
bambustudio-bin
|
bambustudio-bin
|
||||||
@@ -32,7 +50,6 @@ yay
|
|||||||
alacritty
|
alacritty
|
||||||
kitty
|
kitty
|
||||||
|
|
||||||
|
|
||||||
pavucontrol
|
pavucontrol
|
||||||
pipewire
|
pipewire
|
||||||
pipewire-alsa
|
pipewire-alsa
|
||||||
@@ -57,9 +74,7 @@ unrar
|
|||||||
zip
|
zip
|
||||||
unzip
|
unzip
|
||||||
|
|
||||||
|
|
||||||
wine
|
wine
|
||||||
mono
|
mono
|
||||||
|
|
||||||
avahi
|
avahi
|
||||||
|
|
||||||
|
|||||||
@@ -312,8 +312,7 @@ for_window [class="Xfburn"] floating enable
|
|||||||
for_window [urgent=latest] focus
|
for_window [urgent=latest] focus
|
||||||
|
|
||||||
# AESTETICS ----------------------------------------------------------------
|
# AESTETICS ----------------------------------------------------------------
|
||||||
|
exec_always waybar -c ~/scripts/waybar/waybar_config -s ~/scripts/waybar/waybar_style.css
|
||||||
exec_always waybar -c ~/scripts/waybar_config -s ~/scripts/waybar_style.css
|
|
||||||
|
|
||||||
# Theme colors
|
# Theme colors
|
||||||
# class border backgr. text indic. child_border
|
# class border backgr. text indic. child_border
|
||||||
106
waybar/waybar_hyprland_config.json
Normal file
106
waybar/waybar_hyprland_config.json
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
{
|
||||||
|
"layer": "bottom",
|
||||||
|
"position": "bottom",
|
||||||
|
"height": 30,
|
||||||
|
"spacing": 0,
|
||||||
|
|
||||||
|
"modules-left": ["hyprland/workspaces", "hyprland/submap"],
|
||||||
|
"modules-right": [
|
||||||
|
"custom/greetings",
|
||||||
|
"custom/history",
|
||||||
|
"custom/claudebar",
|
||||||
|
"pulseaudio",
|
||||||
|
"cpu",
|
||||||
|
"memory",
|
||||||
|
"disk",
|
||||||
|
"network",
|
||||||
|
"clock",
|
||||||
|
"tray"
|
||||||
|
],
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"disable-scroll": true,
|
||||||
|
"on-click": "activate",
|
||||||
|
"format": "{icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"1": "ツ",
|
||||||
|
"2": "ಠ‿ಠ",
|
||||||
|
"3": "◕‿◕",
|
||||||
|
"4": "ʘ‿ʘ",
|
||||||
|
"5": "˘◡˘",
|
||||||
|
"6": "◠‿◠",
|
||||||
|
"7": "ᵔᴥᵔ",
|
||||||
|
"8": "æ"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/submap": {
|
||||||
|
"format": " {} "
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/greetings": {
|
||||||
|
"exec": "echo $USER!",
|
||||||
|
"interval": "once",
|
||||||
|
"format": "{}",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/history": {
|
||||||
|
"exec": "~/scripts/sh/waybar-history",
|
||||||
|
"format": "$ {}",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/claudebar": {
|
||||||
|
"exec": "claudebar",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 60,
|
||||||
|
"signal": 13,
|
||||||
|
"tooltip": true,
|
||||||
|
"on-click": "xdg-open https://claude.ai/settings/usage"
|
||||||
|
},
|
||||||
|
|
||||||
|
"pulseaudio": {
|
||||||
|
"format": "VOL: {volume}%",
|
||||||
|
"format-muted": "VOL: mute",
|
||||||
|
"on-click": "pavucontrol",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"cpu": {
|
||||||
|
"format": "CPU: {usage}%",
|
||||||
|
"interval": 1,
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"memory": {
|
||||||
|
"format": "MEM: {used:0.1f}G/{total:0.1f}G",
|
||||||
|
"interval": 5,
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"disk": {
|
||||||
|
"format": "DISK: {used}/{total}",
|
||||||
|
"interval": 30,
|
||||||
|
"path": "/",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"network": {
|
||||||
|
"format-wifi": "WIFI: {essid}",
|
||||||
|
"format-ethernet": "ETH: {ifname}",
|
||||||
|
"format-disconnected": "WIFI: --",
|
||||||
|
"interval": 10,
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock": {
|
||||||
|
"format": "{:%Y-%m-%d %H:%M}",
|
||||||
|
"interval": 1,
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"tray": {
|
||||||
|
"spacing": 10
|
||||||
|
}
|
||||||
|
}
|
||||||
112
waybar_style.css
112
waybar_style.css
@@ -1,112 +0,0 @@
|
|||||||
* {
|
|
||||||
font-family: "URWGothic-Book", monospace;
|
|
||||||
font-size: 16px;
|
|
||||||
min-height: 0;
|
|
||||||
border: none;
|
|
||||||
border-radius: 0;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar {
|
|
||||||
background-color: #1A1B2F;
|
|
||||||
color: #C792EA;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Workspaces */
|
|
||||||
#workspaces button {
|
|
||||||
padding: 0 8px;
|
|
||||||
background-color: #2A2B3D;
|
|
||||||
color: #FFFFFF;
|
|
||||||
border-bottom: 2px solid transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button:hover {
|
|
||||||
background-color: #2A2B3D;
|
|
||||||
border-bottom: 2px solid #C792EA;
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.focused,
|
|
||||||
#workspaces button.active {
|
|
||||||
background-color: #1A1B2F;
|
|
||||||
color: #FFFFFF;
|
|
||||||
border-bottom: 2px solid #C792EA;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.urgent {
|
|
||||||
background-color: #FF5370;
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mode {
|
|
||||||
background-color: #FF79C6;
|
|
||||||
color: #1A1B2F;
|
|
||||||
padding: 0 8px;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Right-side modules */
|
|
||||||
#custom-greetings,
|
|
||||||
#custom-history,
|
|
||||||
#custom-claudebar,
|
|
||||||
#pulseaudio,
|
|
||||||
#cpu,
|
|
||||||
#memory,
|
|
||||||
#disk,
|
|
||||||
#network,
|
|
||||||
#clock {
|
|
||||||
padding: 0 10px;
|
|
||||||
color: #C792EA;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Pink separators between modules (matching i3bar separator color) */
|
|
||||||
#custom-history,
|
|
||||||
#custom-claudebar,
|
|
||||||
#pulseaudio,
|
|
||||||
#cpu,
|
|
||||||
#memory,
|
|
||||||
#disk,
|
|
||||||
#network,
|
|
||||||
#clock {
|
|
||||||
border-left: 1px solid #FF79C6;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-greetings {
|
|
||||||
color: #f5af19;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock {
|
|
||||||
color: #FF79C6;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* claudebar severity classes */
|
|
||||||
#custom-claudebar.low {
|
|
||||||
color: #50FA7B;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-claudebar.mid {
|
|
||||||
color: #F1FA8C;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-claudebar.high {
|
|
||||||
color: #FFB86C;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-claudebar.critical {
|
|
||||||
color: #FF5370;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray {
|
|
||||||
padding: 0 8px;
|
|
||||||
border-left: 1px solid #FF79C6;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray>.passive {
|
|
||||||
-gtk-icon-effect: dim;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray>.needs-attention {
|
|
||||||
-gtk-icon-effect: highlight;
|
|
||||||
background-color: #FF5370;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user