Compare commits

...

14 Commits

Author SHA1 Message Date
459c8af749 add brave flags, hardware acceleration 2025-12-01 19:27:48 +02:00
c3efac0c51 update hypr windowrules 2025-12-01 13:25:10 +02:00
d2a5712eff Merge branch 'main' of https://git.mrakells.com/MrAkells/dotfiles 2025-11-25 04:00:54 +02:00
4ab406f7b7 update hypr conf 2025-11-25 04:00:28 +02:00
acf5fdbede Update README with installation and screenshots
Added installation instructions and a screenshots section.
2025-11-24 23:27:26 +00:00
0e92861e47 update readme 2025-11-25 01:15:23 +02:00
5cd71a8fd0 update telegram binary name in autostart 2025-11-25 01:09:03 +02:00
83940e7325 revert windowrules 2025-11-25 00:45:19 +02:00
fe6710c252 config external xiaomi monitor 2025-11-25 00:45:04 +02:00
335066d785 feat: refactor hypr configs 2025-11-22 01:37:53 +02:00
bee35f655f feat: add .Xresources with cursor config 2025-11-21 21:26:04 +02:00
f886c2a5fe feat: update waybar config 2025-11-21 21:02:34 +02:00
f4b7323434 add scripts folder 2025-10-03 00:34:03 +03:00
455d5cbe24 add hypridle config 2025-09-19 20:54:38 +03:00
17 changed files with 328 additions and 223 deletions

1
.Xresources Normal file
View File

@@ -0,0 +1 @@
Xcursor.theme: Qogir-white-cursors

1
.config/brave-flags.conf Normal file
View File

@@ -0,0 +1 @@
--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoEncoder,VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE

View File

@@ -0,0 +1,31 @@
animations {
enabled = true
# Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
# NAME, X0, Y0, X1, Y1
bezier = easeOutQuint, 0.23, 1, 0.32, 1
bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1
bezier = linear, 0, 0, 1, 1
bezier = almostLinear, 0.5, 0.5, 0.75, 1
bezier = quick, 0.15, 0, 0.1, 1
# Default animations, see https://wiki.hypr.land/Configuring/Animations/
# NAME, ONOFF, SPEED, CURVE, [STYLE]
animation = global, 1, 10, default
animation = border, 1, 5.39, easeOutQuint
animation = windows, 1, 4.79, easeOutQuint
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
animation = windowsOut, 1, 1.49, linear, popin 87%
animation = fadeIn, 1, 1.73, almostLinear
animation = fadeOut, 1, 1.46, almostLinear
animation = fade, 1, 3.03, quick
animation = layers, 1, 3.81, easeOutQuint
animation = layersIn, 1, 4, easeOutQuint, fade
animation = layersOut, 1, 1.5, linear, fade
animation = fadeLayersIn, 1, 1.79, almostLinear
animation = fadeLayersOut, 1, 1.39, almostLinear
animation = workspaces, 1, 1.94, almostLinear, slide
animation = workspacesIn, 1, 1.94, almostLinear, slide
animation = workspacesOut, 1, 1.94, almostLinear, slide
animation = zoomFactor, 1, 7, quick
}

View File

@@ -0,0 +1,23 @@
# __ _ _ __ _ __ ___ __ _ _ __ __ _ _ __ ___ ___
# / _` | '_ \| '_ \ / _ \/ _` | '__/ _` | '_ \ / __/ _ \
# | (_| | |_) | |_) | __/ (_| | | | (_| | | | | (_| __/
# \__,_| .__/| .__/ \___|\__,_|_| \__,_|_| |_|\___\___|
# | | | |
# |_| |_|
decoration {
rounding = 0
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = false
}
blur {
enabled = true
size = 6
passes = 2
}
}

View File

@@ -0,0 +1,13 @@
#################
### AUTOSTART ###
#################
exec-once = hyprpm reload -n &
exec-once = waybar &
exec-once = hypridle &
exec-once = swayosd-server &
exec-once = swaybg -i ~/Pictures/Wallpapers/wallhaven-kw22p1.jpg &
exec-once = /usr/lib/hyprpolkitagent/hyprpolkitagent &
exec-once = Telegram -startintray &
#exec-once = kdeconnectd &
#exec-once = kdeconnect-indicator &

View File

@@ -0,0 +1,5 @@
env = ELECTRON_OZONE_PLATFORM_HINT,auto
env = QT_QPA_PLATFORMTHEME,qt6ct
env = XCURSOR_SIZE,24
env = XCURSOR_THEME,Qogir-white-cursors
env = HYPRCURSOR_SIZE,24

View File

@@ -0,0 +1,24 @@
#############
### INPUT ###
#############
input {
kb_layout = us, ua, ru
kb_options = grp:win_space_toggle
follow_mouse = 1
sensitivity = 0
accel_profile = flat
touchpad {
natural_scroll = true
disable_while_typing = false
scroll_factor = 0.6
}
}
gestures {
#workspace_swipe = true
gesture = 3, up, mod: SUPER, scale: 1.5, fullscreen
}

View File

@@ -0,0 +1,79 @@
###################
### KEYBINDINGS ###
###################
$mainMod = SUPER
bind = $mainMod, Return, exec, alacritty
bind = $mainMod, Q, killactive,
#bind = $mainMod, M, exit,
bind = $mainMod, E, exec, nemo
bind = $mainMod, S, togglefloating,
bind = $mainMod, R, exec, wofi --show run
bind = $mainMod, D, exec, wofi --show drun
bind = $mainMod, P, pseudo,
bind = $mainMod, J, togglesplit,
bind = $mainMod, F, fullscreen,
bind = $mainMod Shift, N, exec, networkmanager_dmenu
bind = $mainMod Shift, P, exec, hyprpicker -a
bind = $mainMod Shift, S, exec, hyprshot --clipboard-only -m region
bind = $mainMod Shift, W, exec, hyprshot --clipboard-only -m window
bind = , Print, exec, hyprshot -m region -r - | swappy -f -
bind = $mainMod Shift, R, exec, ~/.local/bin/hypr-record
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, split:workspace, 1
bind = $mainMod, 2, split:workspace, 2
bind = $mainMod, 3, split:workspace, 3
bind = $mainMod, 4, split:workspace, 4
bind = $mainMod, 5, split:workspace, 5
bind = $mainMod, 6, split:workspace, 6
bind = $mainMod, 7, split:workspace, 7
bind = $mainMod, 8, split:workspace, 8
bind = $mainMod, 9, split:workspace, 9
bind = $mainMod, 0, split:workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, split:movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, split:movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, split:movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, split:movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, split:movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, split:movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, split:movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, split:movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, split:movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, split:movetoworkspacesilent, 10
# Example special workspace (scratchpad)
#bind = $mainMod, S, togglespecialworkspace, magic
#bind = $mainMod SHIFT, S, movetoworkspacesilent, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise --max-volume 120
bindel = ,XF86AudioLowerVolume, exec, swayosd-client --output-volume lower --max-volume 120
bindel = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
bindel = ,XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle
bindel = ,XF86MonBrightnessUp, exec, swayosd-client --brightness raise
bindel = ,XF86MonBrightnessDown, exec, swayosd-client --brightness lower
# Requires playerctl
bindl = , XF86AudioNext, exec, swayosd-client --playerctl next
bindl = , XF86AudioPause, exec, swayosd-client --playerctl play-pause
bindl = , XF86AudioPlay, exec, swayosd-client --playerctl play-pause
bindl = , XF86AudioPrev, exec, swayosd-client --playerctl previous

View File

@@ -0,0 +1,10 @@
# _ _
# (_) |
# _ __ ___ ___ _ __ _| |_ ___ _ __ ___
# | '_ ` _ \ / _ \| '_ \| | __/ _ \| '__/ __|
# | | | | | | (_) | | | | | || (_) | | \__ \
# |_| |_| |_|\___/|_| |_|_|\__\___/|_| |___/
monitor=,preferred,auto,1
monitor=eDP-1,preferred,auto,1.25
monitor=HDMI-A-1,1920x1080@100.00,auto,1

View File

@@ -0,0 +1,31 @@
# _ _ _
# (_) | | | |
# __ ___ _ __ __| | _____ ___ __ _ _| | ___ ___
# \ \ /\ / / | '_ \ / _` |/ _ \ \ /\ / / '__| | | | |/ _ \/ __|
# \ V V /| | | | | (_| | (_) \ V V /| | | |_| | | __/\__ \
# \_/\_/ |_|_| |_|\__,_|\___/ \_/\_/ |_| \__,_|_|\___||___/
#
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
windowrule = noblur, class:negative:^(Alacritty|vscodium)$
windowrule = opacity 0.8, class:^(vscodium)$
windowrule = scrolltouchpad 0.2 override, class:^(brave-browser)$
windowrule = float,class:^(org.telegram.desktop)$
windowrule = float,class:^(nemo)$
windowrule = float,class:^(engrampa)$
windowrule = float,class:^(viewnior)$
windowrule = float,class:^(PortProton)$
# Smart gaps
#workspace = w[tv1], gapsout:0, gapsin:0
#workspace = f[1], gapsout:0, gapsin:0
#windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
#windowrule = rounding 0, floating:0, onworkspace:w[tv1]
#windowrule = bordersize 0, floating:0, onworkspace:f[1]
#windowrule = rounding 0, floating:0, onworkspace:f[1]

View File

@@ -0,0 +1,11 @@
listener {
timeout = 120
on-timeout = brightnessctl -s set 10
on-resume = brightnessctl -r
}
listener {
timeout = 300
on-timeout = hyprctl dispatch dpms off
on-resume = hyprctl dispatch dpms on && brightnessctl -r
}

View File

@@ -1,20 +1,4 @@
################
### MONITORS ###
################
monitor=,preferred,auto,1
#################
### AUTOSTART ###
#################
# exec-once = waybar & hyprpaper & firefox
exec-once = uwsm app -- /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = uwsm app -- swww-daemon
#####################
### LOOK AND FEEL ###
#####################
source = ~/.config/hypr/conf/*
general {
gaps_in = 5
@@ -52,38 +36,6 @@ decoration {
}
}
animations {
enabled = true
# Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
# NAME, X0, Y0, X1, Y1
bezier = easeOutQuint, 0.23, 1, 0.32, 1
bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1
bezier = linear, 0, 0, 1, 1
bezier = almostLinear, 0.5, 0.5, 0.75, 1
bezier = quick, 0.15, 0, 0.1, 1
# Default animations, see https://wiki.hypr.land/Configuring/Animations/
# NAME, ONOFF, SPEED, CURVE, [STYLE]
animation = global, 1, 10, default
animation = border, 1, 5.39, easeOutQuint
animation = windows, 1, 4.79, easeOutQuint
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
animation = windowsOut, 1, 1.49, linear, popin 87%
animation = fadeIn, 1, 1.73, almostLinear
animation = fadeOut, 1, 1.46, almostLinear
animation = fade, 1, 3.03, quick
animation = layers, 1, 3.81, easeOutQuint
animation = layersIn, 1, 4, easeOutQuint, fade
animation = layersOut, 1, 1.5, linear, fade
animation = fadeLayersIn, 1, 1.79, almostLinear
animation = fadeLayersOut, 1, 1.39, almostLinear
animation = workspaces, 1, 1.94, almostLinear, slide
animation = workspacesIn, 1, 1.94, almostLinear, slide
animation = workspacesOut, 1, 1.94, almostLinear, slide
animation = zoomFactor, 1, 7, quick
}
dwindle {
pseudotile = true
preserve_split = true
@@ -103,135 +55,7 @@ render {
direct_scanout = 1
}
#############
### INPUT ###
#############
input {
kb_layout = us, ua, ru
kb_options = grp:win_space_toggle
follow_mouse = 1
sensitivity = 0
accel_profile = flat
touchpad {
natural_scroll = true
disable_while_typing = false
scroll_factor = 0.6
}
xwayland {
force_zero_scaling = true
}
gestures {
#workspace_swipe = true
gesture = 3, up, mod: SUPER, scale: 1.5, fullscreen
}
###################
### KEYBINDINGS ###
###################
$mainMod = SUPER
bind = $mainMod, Return, exec, alacritty
bind = $mainMod, Q, killactive,
#bind = $mainMod, M, exit,
bind = $mainMod, E, exec, uwsm app -- nemo
bind = $mainMod, S, togglefloating,
bind = $mainMod, R, exec, wofi --show run
bind = $mainMod, D, exec, wofi --show drun
bind = $mainMod, P, pseudo,
bind = $mainMod, J, togglesplit,
bind = $mainMod, F, fullscreen,
bind = $mainMod Shift, N, exec, networkmanager_dmenu
bind = $mainMod Shift, P, exec, hyprpicker -a
bind = $mainMod Shift, S, exec, hyprshot --clipboard-only -m region
bind = $mainMod Shift, W, exec, hyprshot --clipboard-only -m window
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
# Example special workspace (scratchpad)
#bind = $mainMod, S, togglespecialworkspace, magic
#bind = $mainMod SHIFT, S, movetoworkspacesilent, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule
# windowrule = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
windowrule = noblur, class:negative:^(Alacritty)$
windowrule = float,class:^(org.telegram.desktop)$
windowrule = float,class:^(nemo)$
windowrule = float,class:^(engrampa)$
windowrule = float,class:^(viewnior)$
windowrule = float,class:^(PortProton)$
windowrule = workspace 4, class:^(discord)$
windowrule = workspace 7, class:^(steam)$
windowrule = workspace 7, class:^(org\.prismlauncher\.PrismLauncher)$
#windowrule = immediate, class:^(Minecraft* 1.20.1)$

View File

@@ -2,40 +2,97 @@
{
"layer": "top",
"spacing": 10,
"modules-left": [
"hyprland/workspaces",
"mpris"
],
"modules-center": [
"clock"
"clock",
"custom/weather"
],
"modules-right": [
"tray",
"cpu",
"memory",
"network",
"wireplumber",
"wireplumber#source",
"battery",
"hyprland/language"
],
"mpris": {
"player": "playerctld",
"format": "{title} - {artist}",
"format-stopped": "",
"max-length": 50
},
"custom/weather": {
"format": "{}°",
"tooltip": true,
"interval": 3600,
"exec": "wttrbar --mph",
"return-type": "json"
},
"cpu": {
"format": "cpu: {usage}%"
"format": "cpu: {usage}%",
"interval": 1,
"tooltip-format": "usage: {usage}%\ncores: {cores}\nfreq: {avg_frequency} MHz",
"states": {
"warning": 70,
"critical": 90
}
},
"memory": {
"format": "ram: {percentage}%"
"format": "ram: {percentage}%",
"interval": 3,
"tooltip-format": "ram: {used:.1f}/{total:.1f} GiB\nswap: {swapUsed:.1f}/{swapTotal:.1f} GiB"
},
"network": {
"format-wifi": "net: {essid}",
"format-ethernet": "net: {ipaddr}/{cidr}",
"format-linked": "net: linked",
"format-disconnected": "",
"format-disabled": "",
"tooltip-format-wifi": "if: {ifname}\nssid: {essid}\nsignal: {signalStrength}% ({signaldBm} dBm)\nip: {ipaddr}\ngw: {gwaddr}",
"tooltip-format-ethernet": "if: {ifname}\nip: {ipaddr}/{cidr}\ngw: {gwaddr}",
"tooltip-format-disconnected": "no connection",
"max-length": 50,
"on-click": "iwgtk"
},
"wireplumber": {
// динаміки/навушники (Audio/Sink)
"format": "vol: {volume}%",
"on-click": "pavucontrol"
"format-muted": "vol: muted",
"tooltip-format": "{node_name}\nvol: {volume}%",
"scroll-step": 2,
"max-volume": 100,
"on-click": "pavucontrol",
"on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
},
"wireplumber#source": {
// мікрофон (Audio/Source)
"node-type": "Audio/Source",
"format": "mic: {volume}%",
"format-muted": "mic: off",
"tooltip-format": "{node_name}\nmic: {volume}%",
"scroll-step": 2,
"max-volume": 100,
"on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "bat: {capacity}%",
"format-charging": "bat+: {capacity}%",
"format-full": "bat: full",
"format-alt": "bat: {capacity}% ({time})",
"tooltip-format": "{timeTo}\npower: {power} W",
"full-at": 96,
"interval": 60,
"max-length": 25
},
"hyprland/language": {
"format": "{short}"
}

View File

@@ -4,6 +4,18 @@
min-height: 0;
margin: 0;
padding: 0;
border: none;
border-radius: 0;
}
window#waybar {
background: transparent;
color: #cdd6f4;
}
window#waybar label.module,
#workspaces button.active {
box-shadow: inset 0 -1px #ffffff;
}
#mpris.paused {

BIN
.screenshots/desktop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

6
.scripts/wallchanger.sh Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
while true; do
feh --bg-fill --randomize ~/Pictures/Wallpapers/*
sleep 900
done

View File

@@ -2,35 +2,12 @@
Personal dotfiles for a Linux setup built around [Hyprland](https://github.com/hyprwm/Hyprland).
## ✨ Features
- 🔲 **Hyprland** dynamic Wayland compositor configuration
- 📊 **Waybar** status bar setup
- 🔤️ **Terminal** configs for Foot, Alacritty
- 👚 **Shell** Zsh/Bash with aliases and functions
- ⚙️ **Git** global `.gitconfig` with useful settings
- ✍️ **Neovim** minimal IDE setup
- 🔧 **Misc tools** includes configs for `tmux`, `starship`, `wofi`, etc.
## 📦 Installation
Clone the repo:
```bash
git clone https://github.com/yourusername/dotfiles.git ~/.dotfiles
sudo pacman -S hyprland pipewire waybar mako wofi nemo mpv alacritty fish starship neovim
git clone https://git.mrakells.com/MrAkells/dotfiles.git
cp -r dotfiles/* ~/
```
Then manually symlink files or use a dotfile manager like:
- [chezmoi](https://www.chezmoi.io/)
- [yadm](https://yadm.io/)
> ⚠️ Note: These configs are optimized for a Hyprland-based environment. You may need to adapt them to your own system and preferences.
## 🖼️ Screenshots
*(Add screenshots here if you'd like to show your setup.)*
## 📄 License
MIT License
![My desktop](.screenshots/desktop.png)