Switch default compositor to river

This commit is contained in:
2025-08-01 11:10:43 +01:00
parent e0c39306da
commit 8c2a220eb1
7 changed files with 168 additions and 11 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ keybind = ctrl+shift+o=ignore
background-opacity=0.9 background-opacity=0.9
confirm-close-surface = false confirm-close-surface = false
window-theme = dark window-theme = dark
window-decoration = false window-decoration = true
# Linux Specific # Linux Specific
gtk-wide-tabs = true gtk-wide-tabs = true
+141
View File
@@ -0,0 +1,141 @@
#!/usr/bin/env bash
function execs() {
systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river && systemctl --user restart xdg-desktop-portal xdg-desktop-portal-wlr
rivertile -view-padding 1 -outer-padding 2 &
swww-daemon &
swaync &
quickshell &
wl-clipboard-history -t &
wl-paste -p --watch wl-copy -p '' &
}
# Inputs
# Inputs :: Touchpad Settings
function touchpad_apply_rules() {
touchpad=$1
riverctl input "$touchpad" drag-lock disabled
riverctl input "$touchpad" drag enabled
riverctl input "$touchpad" tap enabled
riverctl input "$touchpad" natural-scroll enabled
riverctl input "$touchpad" middle-emulation enabled
riverctl input "$touchpad" scroll-method two-finger
riverctl input "$touchpad" tap-button-map left-right-middle
riverctl input "$touchpad" click-method click-finger
riverctl input "$touchpad" accel-profile flat
riverctl input "$touchpad" disable-while-typing disabled
riverctl input "$touchpad" scroll-factor 0.6
riverctl input "$touchpad" pointer-accel 0.3
riverctl input "$touchpad" scroll-method two-finger
}
# Inputs :: General
function inputs() {
riverctl keyboard-layout us
touchpads=$(riverctl list-inputs | grep '^pointer-.*Touchpad' | awk '{print $1}')
for touchpad in $touchpads
do
touchpad_apply_rules $touchpad
done
}
# Layout
function layout() {
riverctl default-layout rivertile
}
# Binds
function binds() {
mod="Super"
lock="hyprlock"
# Binds :: Modes
mode_reset="riverctl enter-mode normal"
riverctl declare-mode browser_select
riverctl map normal $mod B enter-mode browser_select
riverctl map browser_select None B spawn "$mode_reset && brave"
riverctl map browser_select None Escape spawn "$mode_reset"
# Binds :: Progams
discord="discord --enable-blink-features=MiddleClickAutoscroll"
hyprpicker="hyprpicker -a"
screenshot="grim - | wl-copy"
screenshotarea="grim -g \"\$(slurp)\" - | wl-copy"
riverctl map normal Alt Return spawn ghostty
riverctl map normal $mod+Shift D spawn "$discord"
riverctl map normal $mod Space spawn fuzzel
riverctl map normal $mod P spawn "$hyprpicker"
riverctl map normal None Print spawn "$screenshotarea"
riverctl map normal Shift Print spawn "$screenshot"
# Binds :: Controls
reload="$NIX_CONFIG_DIR/configs/river/init noexec"
riverctl map normal $mod C close
riverctl map normal $mod+Control Q spawn "$lock"
riverctl map normal $mod+Shift R spawn "$reload"
riverctl map normal $mod F4 exit
# Binds :: Controls :: Floating Windows
riverctl map normal $mod F toggle-float # Toggle floating mode
riverctl map normal $mod+Shift Space zoom # Focus the main window
riverctl map-pointer normal $mod BTN_LEFT move-view # Move floating windows
riverctl map-pointer normal $mod BTN_RIGHT resize-view # Resize floating windows
# Binds :: Controls :: rivertile :: Layout Adjustments
riverctl map normal $mod H send-layout-cmd rivertile "main-ratio -0.05" # Decrease main window size
riverctl map normal $mod L send-layout-cmd rivertile "main-ratio +0.05" # Increase main window size
riverctl map normal $mod+Shift H send-layout-cmd rivertile "main-count +1" # Increase number of main windows
riverctl map normal $mod+Shift L send-layout-cmd rivertile "main-count -1" # Decrease number of main windows
# Binds :: Controls :: Multimedia
# Binds :: Controls :: Multimedia :: Commands
brightness="$NIX_CONFIG_DIR/scripts/progress-notify.sh brightness"
brightness_up="brightnessctl set 10%+ && $brightness"
brightness_down="brightnessctl set 10%- && $brightness"
audio="$NIX_CONFIG_DIR/scripts/progress-notify.sh audio"
volume_up="pamixer -i 5 && $audio"
volume_down="pamixer -d 5 && $audio"
mute="$NIX_CONFIG_DIR/scripts/progress-notify.sh mute"
mute_toggle="pamixer -t && $mute"
riverctl map -repeat normal None XF86MonBrightnessUp spawn "sh -c '$brightness_up'"
riverctl map -repeat normal None XF86MonBrightnessDown spawn "sh -c '$brightness_down'"
riverctl map -repeat normal None XF86AudioRaiseVolume spawn "sh -c '$volume_up'"
riverctl map -repeat normal None XF86AudioLowerVolume spawn "sh -c '$volume_down'"
riverctl map normal None XF86AudioMute spawn "sh -c '$mute_toggle'"
# Binds :: Controls :: Navigation
riverctl map normal $mod J focus-view next
riverctl map normal $mod K focus-view previous
riverctl map normal $mod+Shift J swap next
riverctl map normal $mod+Shift K swap previous
# Binds :: Controls :: Tags
for i in $(seq 1 9)
do
tags=$((1 << ($i - 1)))
riverctl map normal $mod $i set-focused-tags $tags # Focus tag
riverctl map normal $mod+Shift $i set-view-tags $tags # Assign tag to window
done
}
function colors() {
# Set border colors (focused and unfocused windows)
riverctl border-color-focused 0x93C863 # Green for focused windows
riverctl border-color-unfocused 0x333333 # Gray for unfocused windows
}
# Process Script Args
for arg in "$@"; do declare $arg='1'; done
# Run Sections
inputs
layout
colors
binds
if ! [ -v noexec ]; then execs ; fi
Generated
+7 -7
View File
@@ -165,11 +165,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1752873617, "lastModified": 1753971789,
"narHash": "sha256-OyYkFTgk5WuiwCPMhO9nwgplr+qh8Hva/VPON7wK2+0=", "narHash": "sha256-V0yPyFMBdOt0c3QIUlO18bHDI7vXKqOixtLuBZZjrBI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland", "repo": "Hyprland",
"rev": "ae3cc48f223386b057137400354ed0ca1f7a8b1a", "rev": "a907ecd4ff736a3a09410532b405a437eb48033c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -342,11 +342,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1752252310, "lastModified": 1753800567,
"narHash": "sha256-06i1pIh6wb+sDeDmWlzuPwIdaFMxLlj1J9I5B9XqSeo=", "narHash": "sha256-W0xgXsaqGa/5/7IBzKNhf0+23MqGPymYYfqT7ECqeTE=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "bcabcbada90ed2aacb435dc09b91001819a6dc82", "rev": "c65d41d4f4e6ded6fdb9d508a73e2fe90e55cdf7",
"type": "github" "type": "github"
}, },
"original": { "original": {
+1 -1
View File
@@ -25,7 +25,7 @@
let let
system = "x86_64-linux"; system = "x86_64-linux";
# pkgs = nixpkgs.legacyPackages.${system}; # pkgs = nixpkgs.legacyPackages.${system};
pkgs = import nixpkgs { pkgs = import nixpkgs.legacyPackages {
inherit system; inherit system;
overlays = [ overlays = [
# Hyprland & Plugins Overlays # Hyprland & Plugins Overlays
+9 -1
View File
@@ -82,7 +82,7 @@ in
restart = true; restart = true;
settings = { settings = {
default_session = { default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --cmd Hyprland"; command = "${pkgs.greetd.tuigreet}/bin/tuigreet --cmd river";
}; };
}; };
}; };
@@ -105,6 +105,7 @@ in
etc = { etc = {
"greetd/environments".text = '' "greetd/environments".text = ''
Hyprland Hyprland
river
''; '';
# "hyprland/plugins.conf" = { # "hyprland/plugins.conf" = {
# mode = "0444"; # mode = "0444";
@@ -189,6 +190,12 @@ in
# pkgs.hyprlandPlugins.hyprexpo # pkgs.hyprlandPlugins.hyprexpo
]; ];
}; };
river = {
enable = true;
xwayland.enable = true;
};
gnupg.agent = { gnupg.agent = {
enable = true; enable = true;
enableSSHSupport = true; enableSSHSupport = true;
@@ -198,6 +205,7 @@ in
dconf.enable = true; dconf.enable = true;
nix-ld.enable = true; nix-ld.enable = true;
mtr.enable = true; mtr.enable = true;
uwsm.enable = true;
}; };
lib.inputMethod.fcitx5.waylandFrontend = true; lib.inputMethod.fcitx5.waylandFrontend = true;
+5
View File
@@ -26,6 +26,11 @@ in
outOfStoreSymlink = true; outOfStoreSymlink = true;
recursive = true; recursive = true;
}; };
".config/river" = {
source = ../../configs/river;
outOfStoreSymlink = true;
recursive = true;
};
".config/waybar" = { ".config/waybar" = {
source = ../../configs/waybar; source = ../../configs/waybar;
outOfStoreSymlink = true; outOfStoreSymlink = true;
+4 -1
View File
@@ -6,7 +6,7 @@
{ {
# BEGIN PACKAGES # BEGIN PACKAGES
home.packages = with pkgs; [ home.packages = with pkgs; [
audacity # audacity
android-studio android-studio
bat bat
brave brave
@@ -19,9 +19,11 @@
fastfetch fastfetch
filezilla filezilla
floorp floorp
fuzzel
fzf fzf
genymotion genymotion
gimp gimp
grim
gtk4 gtk4
gvfs gvfs
grimblast grimblast
@@ -48,6 +50,7 @@
pywal pywal
qbittorrent qbittorrent
signal-desktop signal-desktop
slurp
swaynotificationcenter swaynotificationcenter
swww swww
texliveFull texliveFull