feat(hyprland): reconfigure for uwsm + systemd

This commit is contained in:
2025-05-17 01:25:55 +02:00
parent 6cfc41627d
commit ad12011700
14 changed files with 118 additions and 133 deletions

View File

@@ -9,15 +9,16 @@ To automatically setup the system, use the script `fedora.sh`, or run trough the
- kitty: `.config/kitty` + `fira_code_mono_nerd_font` installed
- serif font: install `google-roboto-fonts` (used in gtk, qt, waybar)
- zsh: `\$ZDOTDIR` set in `/etc/zshenv` + omz install (`sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" && mv ~/.oh-my-zsh ~/.local/share/oh-my-zsh && mkdir -p ~/.local/state/zsh/`) + `.config/zsh` + install fzf-tab plugin (git clone https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab/, needs sqlite as dependency) + for some reason `$XDG_STATE_HOME/zsh` needs to be created manually
- hypr*: `.config/hypr,` install `hyprlock`, `hyprsunset`, `hypridle`,
- hyprpaper: `.config/hypr` + download from [here](https://www.flickr.com/photos/nasahqphoto/5914101671/in/photostream/) by `curl -o .local/share/backgrounds/eKxlw8.jpg -fsSL "https://live.staticflickr.com/5077/5914101671_d80c6591e8_k.jpg` (also used for grub & regreet & hyprlock)
- waybar: `.config/waybar` + install `fontawesome4-fonts` (for icons)
- hypr*: `.config/hypr,` install `hyprlock`, `hyprsunset`, `hypridle`, `hyprpolkitagent`. Also enable `hypridle.service`, `hyprsunset.service`, `hyprpolkitagent.service`. Note that the config is set up to be run via uwsm.
- hyprpaper: `.config/hypr` + download from [here](https://www.flickr.com/photos/nasahqphoto/5914101671/in/photostream/) by `curl -o .local/share/backgrounds/eKxlw8.jpg -fsSL "https://live.staticflickr.com/5077/5914101671_d80c6591e8_k.jpg` (also used for grub & regreet & hyprlock). Also enable `hyprpaper.service`
- waybar: `.config/waybar` + install `fontawesome4-fonts` (for icons). Also enable `waybar.service`
- rofi: `.config/rofi`
- rofi-qalc: needs rofi-wayland, rofi-devel, then compile this by hand: https://github.com/svenstaro/rofi-calc
- regreet (greetd greeter): needs cargo, gtk4-devel, cairo-gobject-devel, pango-devel and greetd; needs the greetd user added to `video` group, then complle this by hand: https://github.com/rharish101/ReGreet.git
Also moves config files to their places, including to `/etc/tmpfiles.d/`
Also moves config files to their places, including to `/etc/tmpfiles.d/`.
At login, you'll have to choose the `uwsm-managed` Hyprland
- nvim: `.config/nvim` + kitty done + deps: clang (gcc-c++), unzip, npm, ripgrep, go, then proceed with nvchad init
- swaync: `.config/swaync`
- swaync: `.config/swaync`, also enable `swaync.service`
- gtk: `.config/gtk-*`, `dconf load /org/gtk/gtk4 < ./dconf-export/gtk4.dconf`
- MPV: `$XDG_CONFIG_HOME/mpv/`
- QT5: `.config/qt6ct/`, `xsettingsd/`
@@ -27,7 +28,7 @@ To automatically setup the system, use the script `fedora.sh`, or run trough the
- udev: `/etc/udev/rules.d/` (for setting driver permissions)
- selinux: `/etc/selinux/config` to stay permissive (why even bother with selinux?)
- firefox(librewolf btw): do your own profile, install [catpuccin theme](https://github.com/catppuccin/firefox) and [darkreader](https://darkreader.org/)
- gnome tooling (file picker, keyring, etc): `dconf load /org/gnome/desktop/ < ./dconf-export/gnome-desktop.dconf`
- gnome tooling (file picker, keyring, etc): `dconf load /org/gnome/desktop/ < ./dconf-export/gnome-desktop.dconf`, for the keyring enable `gnome-keyring.service`
- nautilus (file manager): gtk set up, then `dconf load /org/gnome/nautilus < ./dconf-export/nautilus.dconf`
- gedit (gui text editor): gtk set up, then `dconf load /org/gnome/gedit < ./dconf-export/gedit.dconf`

View File

@@ -11,6 +11,10 @@ replace_config_line () {
fi
}
set_unit () {
systemctl --user enable $*
}
replace_config_line "/etc/dnf/dnf.conf" "installonly_limit" "3"
replace_config_line "/etc/dnf/dnf.conf" "best" "False"
replace_config_line "/etc/dnf/dnf.conf" "skip_unavailable" "True"
@@ -55,9 +59,12 @@ printf "You'll need to relog to have your default shell changed\n"
ensure_installed hyprland hyprpaper hypridle hyprlock hyprsunset
mkdir -p ~/.local/share/backgrounds/
curl -o ~/.local/share/backgrounds/eKxlw8.jpg -fsSL "https://live.staticflickr.com/5077/5914101671_d80c6591e8_k.jpg"
set_unit hypridle.service hyprpaper.service hyprpolkitagent.service hyprsunset.service
# desktop elements that just work
ensure_installed swaync
set_unit swaync.service
ensure_installed waybar fontawesome4-fonts
set_unit waybar.service
# Install ReGreet
ensure_installed cargo gtk4-devel cairo-gobject-devel pango-devel greetd
@@ -87,6 +94,7 @@ sudo plymouth-set-default-theme -R fedora-mac-style && sudo dracut --regenerate-
# install gnome's stuff
ensure_installed gnome-keying nautilus dconf gedit
set_unit gnome-keying.service
dconf load /org/gtk/gtk4 < ~/.config/dconf-export/gtk4.dconf
dconf load /org/gnome/desktop < ~/.config/dconf-export/gnome-desktop.dconf
dconf load /org/gnome/nautilus < ~/.config/dconf-export/nautilus.dconf

View File

@@ -1,23 +0,0 @@
env = XCURSOR_SIZE,24
#env = LIBVA_DRIVER_NAME,nvidia
#env = XDG_SESSION_TYPE,wayland
#env = GDM_BACKEND,nvidia-drm
#env = __GLX_VENDOR_LIBRARY_NAME,nvidia
#env = WLR_NO_HARDWARE_CURSORS,1
env = QT_QPA_PLATFORMTHEME,qt6ct
env = QT_QPA_PLATFORM,wayland;xcb
# GarbageTK
env = GTK_THEME,adw-gtk3-dark
# moar wayland
env = SDL_VIDEODRIVER,wayland
env = CLUTTER_BACKEND,wayland
# Exec
#env = PATH,/home/kosmx/.local/share/graalvm/bin:$PATH
# XDG
env = XDG_RUNTIME_DIR,/run/user/1000/

View File

@@ -9,29 +9,28 @@
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = hyprpaper
exec-once = waybar
exec-once = swaync
#exec-once = uwsm app hyprpaper
#exec-once = uwsm app waybar
#exec-once = uwsm app swaync
# clippy
exec-once = wl-paste --type text --watch cliphist -max-items 36 store #Stores only text data
exec-once = wl-paste --type image --watch cliphist -max-items 36 store #Stores only image data
exec-once = uwsm app wl-paste --type text --watch cliphist -max-items 36 store #Stores only text data
exec-once = uwsm app wl-paste --type image --watch cliphist -max-items 36 store #Stores only image data
#exec-once = hyprland-per-window-layout
exec-once = udiskie &
exec-once = uwsm app udiskie
exec-once = /usr/libexec/hyprpolkitagent
exec-once = hypridle
exec-once = hyprsunset
#exec-once = uwsm app /usr/libexec/hyprpolkitagent
#exec-once = uwsm app hypridle
#exec-once = hyprsunset
#exec-once = /usr/libexec/kdeconnectd # kdeconnect daemon
exec-once = kdeconnect-indicator
exec-once = uwsm app kdeconnect-indicator
# audit (apparmor) logger
# exec-once = aa-notify -p -s 1 -w 60 -f /var/log/audit/audit.log
exec-once = gnome-keyring-daemon --start --components=pkcs11,secrets,ssh
#exec-once = uwsm app gnome-keyring-daemon --start --components=pkcs11,secrets,ssh
# something keeps changing my cursor. This is my ultimatum.
exec-once = gsettings set org.gnome.desktop.interface cursor-theme
exec-once = gsettings set org.gnome.desktop.interface cursor-theme Adwaita

View File

@@ -1,6 +1,6 @@
# Config yoinked from hyprland website
general {
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
lock_cmd = pidof hyprlock || uwsm app hyprlock # avoid starting multiple hyprlock instances.
before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
}

View File

@@ -18,8 +18,6 @@ monitor=,preferred,auto,auto
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
source=./env.conf
# Exec stuffs
source=./exec.conf

View File

@@ -4,23 +4,20 @@
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, T, exec, kitty
bind = $mainMod, W, exec, flatpak run io.gitlab.librewolf-community
bind = $mainMod, BACKSPACE, killactive,
bind = $mainMod CTRL ALT, BACKSPACE, exit,
bind = $mainMod CTRL, BACKSPACE, exec, sh ~/.config/swaylock.sh
#bind = $mainMod, PAUSE, killactive,
bind = $mainMod, F, exec, nautilus
bind = $mainMod, Y, togglefloating,
bind = $mainMod, BACKSPACE, killactive
bind = $mainMod CTRL ALT, BACKSPACE, exec, uwsm stop
#bind = $mainMod CTRL, BACKSPACE, exec, sh ~/.config/swaylock.sh
#bind = $mainMod, PAUSE, killactive
bind = $mainMod, Y, togglefloating
bind = $mainMod SHIFT, Y, workspaceopt, allfloat
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod SHIFT, P, pin,
bind = $mainMod SHIFT, P, workspaceopt, allpseudo,
bind = $mainMod SHIFT, P, pin
bind = $mainMod SHIFT, P, workspaceopt, allpseudo
bind = $mainMod, O, togglesplit, # dwindle
bind = $mainMod, E, fullscreen, 1
bind = $mainMod SHIFT, E, fullscreen, 0
# bind = $mainMod CTRL, E, fakefullscreen,
bind = $mainMod SHIFT, PERIOD, pin,
# bind = $mainMod CTRL, E, fakefullscreen
bind = $mainMod SHIFT, PERIOD, pin
binde = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
binde = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
binde = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
@@ -104,7 +101,7 @@ bind = $mainMod, mouse:274, movetoworkspacesilent, special
bind = $mainMod, C, movetoworkspacesilent, special
bind = $mainMod SHIFT, mouse:274, movetoworkspace, special
bind = $mainMod SHIFT, C, movetoworkspace, special
bind = $mainMod, TAB, togglespecialworkspace,
bind = $mainMod, TAB, togglespecialworkspace
bind = $mainMod CTRL, END, workspace, empty
bind = $mainMod SHIFT, END, movetoworkspace, empty
bind = $mainMod CTRL, HOME, workspace, 1
@@ -115,14 +112,18 @@ bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
bindm = $mainMod SHIFT, mouse:272, resizewindow
# Applications
bind = $mainMod, F, exec, uwsm app nautilus
bind = $mainMod, T, exec, uwsm app kitty
bind = $mainMod, W, exec, uwsm app io.gitlab.librewolf-community.desktop
# Tools (launcher/etc)
bind = $mainMod, SPACE, exec, ~/.config/rofi/launchers/type-1/launcher.sh
bind = $mainMod SHIFT, V, exec, cliphist list | rofi -theme ~/.config/rofi/launchers/type-1/style-5.rasi -dmenu | cliphist decode | wl-copy && wl-paste
bind = $mainMod SHIFT, V, exec, cliphist list | rofi -theme ~/.config/rofi/launchers/type-1/style-5.rasi -dmenu | cliphist decode | wl-copy
bind = $mainMod SHIFT CTRL, V, exec, cliphist list | rofi -theme ~/.config/rofi/launchers/type-1/style-5.rasi -dmenu | cliphist delete
bind = $mainMod, minus, exec, rofi -theme ~/.config/rofi/launchers/type-1/style-5.rasi -show calc -modi calc -no-show-match -no-sort -no-persist-history -calc-command "echo -n '{result}' | wl-copy"
bind = $mainMod, B, exec, pkill waybar || waybar
bind = $mainMod SHIFT, ESCAPE, exec, plasma-systemmonitor # TODO add my own monitor
bind = $mainMod, B, exec, pkill waybar || uwsm app waybar
bind = $mainMod SHIFT, ESCAPE, exec, uwsm app plasma-systemmonitor # TODO add my own monitor
bind = $mainMod, N, exec, swaync-client -t -sw
bind = $mainMod SHIFT, S, exec, sh -c "slurp | grim -g - - | wl-copy && wl-paste > $(xdg-user-dir PICTURES)/screenshots/$(date +'%Y-%m-%d-%H%M%S_grim.png')"

View File

@@ -22,11 +22,11 @@ elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then
fi
# CMDs (add your apps here)
term_cmd='kitty'
file_cmd='nautilus'
text_cmd='gedit'
web_cmd='flatpak run io.gitlab.librewolf-community'
music_cmd=''
term_cmd='uwsm app kitty'
file_cmd='uwsm app nautilus'
text_cmd='uwsm app gedit'
web_cmd='uwsm app io.gitlab.librewolf-community.desktop'
music_cmd='uwsm app com.github.iwalton3.jellyfin-mpv-shim.desktop'
setting_cmd=''
# Options

View File

@@ -108,7 +108,7 @@ run_cmd() {
elif [[ "$1" == '--opt2' ]]; then
notify-send -u low "$ICON_CHRG Status : $status"
elif [[ "$1" == '--opt3' ]]; then
xfce4-power-manager-settings
uwsm app xfce4-power-manager-settings
elif [[ "$1" == '--opt4' ]]; then
${polkit_cmd} kitty -e powertop
fi

View File

@@ -83,7 +83,7 @@ run_cmd() {
elif [[ "$1" == '--opt3' ]]; then
light -U 5
elif [[ "$1" == '--opt4' ]]; then
xfce4-power-manager-settings
uwsm app xfce4-power-manager-settings
fi
}

View File

@@ -92,7 +92,7 @@ run_cmd() {
if [[ "$1" == '--opt1' ]]; then
loginctl lock-session
elif [[ "$1" == '--opt2' ]]; then
confirm_run 'hyprctl dispatch exit'
confirm_run 'uwsm stop'
elif [[ "$1" == '--opt3' ]]; then
confirm_run 'systemctl suspend'
elif [[ "$1" == '--opt4' ]]; then

View File

@@ -108,7 +108,7 @@ run_cmd() {
elif [[ "$1" == '--opt4' ]]; then
amixer set Capture toggle
elif [[ "$1" == '--opt5' ]]; then
pavucontrol
uwsm app pavucontrol
fi
}

View File

@@ -18,3 +18,4 @@ theme='style-5'
rofi \
-show drun \
-theme ${dir}/${theme}.rasi
-run-command "uwsm app -- {cmd}"

View File

@@ -42,7 +42,7 @@
"default": ["󰸈", "󰕿", "󰖀", "󰕾"]
},
"on-click": "~/.config/rofi/applets/bin/volume.sh",
"on-click-right": "pavucontrol"
"on-click-right": "uwsm app pavucontrol"
},
"bluetooth": {
@@ -51,7 +51,7 @@
"format-connected": " {num_connections}",
"tooltip-format-enumerate-connected": "{device_alias}",
"tooltip-format-connected": "{device_enumerate}",
"on-click": "blueman-manager"
"on-click": "uwsm app blueman-manager"
},
"temperature": {
@@ -129,7 +129,7 @@
"custom/quit": {
"format": " 󰗼 ",
"tooltip": false,
"on-click": "hyprctl dispatch exit"
"on-click": "uwsm stop"
},
"custom/lock": {
"format": " 󰍁 ",