feat: make nixos handle hyprland to fix gsettings and add tablet mode

This commit is contained in:
matt1432 2023-06-15 17:00:03 -04:00
parent e8ec42676b
commit 25d154e3cd
6 changed files with 243 additions and 236 deletions

1
.gitignore vendored
View file

@ -1,4 +1,5 @@
cef_user_data/ cef_user_data/
environment.d/
gtk-3.0/bookmarks gtk-3.0/bookmarks
Kvantum/**/ Kvantum/**/
chromium/ chromium/

3
TODO.md Normal file
View file

@ -0,0 +1,3 @@
change tray icons
center tablet-toggle
decide on layers for eww and waybar

View file

@ -1,234 +0,0 @@
# Plugins
plugin = /nix/store/60x0zlg3fbq7nzz8249fxsb89pn541z8-hyprland-touch-gestures-0.3.0/lib/libtouch-gestures.so
plugin {
touch_gestures {
# default sensitivity is probably too low on tablet screens,
# I recommend turning it up to 4.0
sensitivity = 20.0
}
}
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1,1920x1200@60,0x0,1
$menu = "$HOME/.config/rofi/launcher.sh"
$scripts = "$HOME/.config/hypr/scripts"
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
exec-once = bash -c "sleep 3; nm-applet"
exec-once = bash -c "sleep 4; blueman-applet"
exec-once = bash -c "sleep 5; nextcloud --background"
exec-once = bash -c "sleep 6; tutanota-desktop -a"
exec-once = bash -c "sleep 7; GalaxyBudsClient /StartMinimized"
exec-once = eww daemon
exec-once = eww open tablet-toggle
exec-once = eww open notif-panel
#exec-once = sudo input-emulator start touch --x-max 1920 --y-max 1200 --slots 4
#exec = $HOME/.config/lisgd/config
exec-once = killall libinput-debug-events | libinput-gestures
exec-once = dbus-update-activation-environment --all
exec-once = gnome-keyring-daemon --start --components=secrets
exec-once = $menu
exec-once = hyprpaper
exec-once = $scripts/lose-focus.sh
exec-once = waybar
exec-once = swaync
exec-once = /nix/store/4cssj191kj5y7n738r2a90m0vplm83gr-polkit-kde-agent-1-5.27.5/libexec/polkit-kde-authentication-agent-1
exec-once = wl-paste --watch cliphist store
# OSD window
exec-once = swayosd
# Change HandleLidSwitch to lock in logind.conf
exec-once = swayidle -w lock $HOME/.config/gtklock/scripts/lock.sh
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Some default env vars.
env = XCURSOR_SIZE,24
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = ca
kb_variant = multix
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
touchpad {
natural_scroll = no
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5
gaps_out = 5
border_size = 2
col.active_border = rgb(411C6C)
#col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
layout = dwindle
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 20
blur = yes
blur_size = 3
blur_passes = 1
blur_new_optimizations = on
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
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
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_is_master = true
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = yes
workspace_swipe_fingers = 3
workspace_swipe_cancel_ratio = 0.15
#workspace_swipe_forever = yes
}
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrule = float,^(org.kde.polkit-kde-authentication-agent-1)$
windowrule = float,^(org.gnome.Calculator)$
windowrule = float,^(GalaxyBudsClient)$
windowrule = size 1231 950,title:^(Open Folder)$
windowrule = float,title:^(Open Folder)$
windowrule = size 1231 950,title:^(Open File)$
windowrule = float,title:^(Open File)$
windowrule = pin,^(nm-tray)$
#windowrule = move cursor 0 -35,^(nm-tray)$
windowrule = float,^(.blueman-manager-wrapped)$
windowrule = move cursor 0 0,^(.blueman-manager-wrapped)$
windowrule = size 400 581,^(.blueman-manager-wrapped)$
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Touchscreen stuff
#bind =, swipe:3:l, exec, $scripts/gestures.sh next
#bind =, swipe:3:r, exec, $scripts/gestures.sh prev
bind = $mainMod, V, exec, cliphist list | ~/.config/rofi/dmenu.sh | cliphist decode | wl-copy
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, alacritty
bind = $mainMod, C, killactive,
bind = $mainMod, L, exec, $HOME/.config/gtklock/scripts/lock.sh
bind = $mainMod SHIFT, E, exec, eww open closer && $HOME/.config/eww/scripts/open.sh powermenu
bind = $mainMod SHIFT, SPACE, togglefloating,
bind = $mainMod, D, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
# 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, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# 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
# Take a screenshot
bind =, Print, exec, bash -c 'grim -g "$(slurp)" - | swappy -f -'
# Volume control
binde =, XF86AudioRaiseVolume, exec, swayosd --output-volume raise
binde =, XF86AudioLowerVolume, exec, swayosd --output-volume lower
bind =, XF86AudioMute, exec, swayosd --output-volume mute-toggle
bind =, XF86AudioMicMute, exec, swayosd --input-volume mute-toggle
bindr = CAPS, Caps_Lock, exec, swayosd --caps-lock
# Brightness control
binde =, XF86MonBrightnessUp, exec, swayosd --brightness raise
binde =, XF86MonBrightnessDown, exec, swayosd --brightness lower
#binde =, XF86MonBrightnessUp, exec, brightnessctl set 5%+
#binde =, XF86MonBrightnessDown, exec, brightnessctl set 5%-

1
hypr/hyprland.conf Symbolic link
View file

@ -0,0 +1 @@
/nix/store/bz29bpif91v5k2xf12pv0y1lra7lad6x-home-manager-files/.config/hypr/hyprland.conf

237
hypr/main.conf Normal file
View file

@ -0,0 +1,237 @@
# Plugins
plugin = /nix/store/60x0zlg3fbq7nzz8249fxsb89pn541z8-hyprland-touch-gestures-0.3.0/lib/libtouch-gestures.so
plugin {
touch_gestures {
# default sensitivity is probably too low on tablet screens,
# I recommend turning it up to 4.0
sensitivity = 20.0
}
}
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1,1920x1200@60,0x0,1
$menu = "$HOME/.config/rofi/launcher.sh"
$scripts = "$HOME/.config/hypr/scripts"
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
exec-once = bash -c "sleep 3; nm-applet"
exec-once = bash -c "sleep 4; blueman-applet"
exec-once = bash -c "sleep 5; nextcloud --background"
exec-once = bash -c "sleep 6; tutanota-desktop -a"
exec-once = bash -c "sleep 7; GalaxyBudsClient /StartMinimized"
exec-once = eww daemon
exec-once = eww open tablet-toggle
exec-once = eww open notif-panel
exec-once = dbus-update-activation-environment --all
exec-once = gnome-keyring-daemon --start --components=secrets
exec-once = squeekboard
exec-once = $menu
exec-once = hyprpaper
exec-once = $scripts/lose-focus.sh
# after boot, there are 2 bars for some reason, so I kill them and rerun the command
#exec-once = waybar
exec-once = bash -c "killall -r -0 waybar && killall -r waybar; waybar"
exec-once = swaync
exec-once = /nix/store/4cssj191kj5y7n738r2a90m0vplm83gr-polkit-kde-agent-1-5.27.5/libexec/polkit-kde-authentication-agent-1
exec-once = wl-paste --watch cliphist store
# OSD window
exec-once = swayosd
# Change HandleLidSwitch to lock in logind.conf
exec-once = swayidle -w lock $HOME/.config/gtklock/scripts/lock.sh
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Some default env vars.
env = XCURSOR_SIZE,24
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = ca
kb_variant = multix
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
touchpad {
natural_scroll = no
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5
gaps_out = 5
border_size = 2
col.active_border = rgb(411C6C)
#col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
layout = dwindle
}
misc {
disable_hyprland_logo = true
disable_splash_rendering = true
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 20
blur = yes
blur_size = 3
blur_passes = 1
blur_new_optimizations = on
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
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
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_is_master = true
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = yes
workspace_swipe_fingers = 3
workspace_swipe_cancel_ratio = 0.15
#workspace_swipe_forever = yes
}
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrule = float,^(org.kde.polkit-kde-authentication-agent-1)$
windowrule = float,^(org.gnome.Calculator)$
windowrule = float,^(GalaxyBudsClient)$
windowrule = size 1231 950,title:^(Open Folder)$
windowrule = float,title:^(Open Folder)$
windowrule = size 1231 950,title:^(Open File)$
windowrule = float,title:^(Open File)$
windowrule = pin,^(nm-tray)$
#windowrule = move cursor 0 -35,^(nm-tray)$
windowrule = float,^(.blueman-manager-wrapped)$
windowrule = move cursor 0 0,^(.blueman-manager-wrapped)$
windowrule = size 400 581,^(.blueman-manager-wrapped)$
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Touchscreen stuff
#bind =, swipe:3:l, exec, $scripts/gestures.sh next
#bind =, swipe:3:r, exec, $scripts/gestures.sh prev
bind = $mainMod, V, exec, cliphist list | ~/.config/rofi/dmenu.sh | cliphist decode | wl-copy
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, alacritty
bind = $mainMod, C, killactive,
bind = $mainMod, L, exec, $HOME/.config/gtklock/scripts/lock.sh
bind = $mainMod SHIFT, E, exec, eww open closer && $HOME/.config/eww/scripts/open.sh powermenu
bind = $mainMod SHIFT, SPACE, togglefloating,
bind = $mainMod, D, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
# 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, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# 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
# Take a screenshot
bind =, Print, exec, bash -c 'grim -g "$(slurp)" - | swappy -f -'
# Volume control
binde =, XF86AudioRaiseVolume, exec, swayosd --output-volume raise
binde =, XF86AudioLowerVolume, exec, swayosd --output-volume lower
bind =, XF86AudioMute, exec, swayosd --output-volume mute-toggle
bind =, XF86AudioMicMute, exec, swayosd --input-volume mute-toggle
bindr = CAPS, Caps_Lock, exec, swayosd --caps-lock
# Brightness control
binde =, XF86MonBrightnessUp, exec, swayosd --brightness raise
binde =, XF86MonBrightnessDown, exec, swayosd --brightness lower

View file

@ -1,6 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
eww update toggle-state=false eww update toggle-state=false
/usr/bin/setsysmode laptop
gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
eww update toggle-state=true eww update toggle-state=true
setsysmode tablet
echo $XDG_DATA_DIRS >> ~/log.log
gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true
brightnessctl -d tpacpi::kbd_backlight s 0 brightnessctl -d tpacpi::kbd_backlight s 0