diff --git a/README.md b/README.md index d490ef0..cafd577 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,15 @@ please note, this step is only needed when arch is to be installed on a new host - settings ➔ disk usage ➔ - disk space: 2048 ➔ 10240 - cache size: 5120 ➔ 51200 (~51 gb) +- **SYNOLOGY DRIVE CLIENT** + - log in + - select `backup task` + - backup source: `/home/poq/pCloudDrive` + - backup destination: `/home/Drive/Backup/[hostname]` (default) + - backup rules: + - `backup up files and folders with the prefix "."` + - `keep locally deleted files on the remote backup destination folder` + - backup mode: `continous backup` - **KITTEN** - `$ kitten themes 'cyberpunk neon'` - to list all themes: `$ kitten themes` diff --git a/dots/bin/hyprShutdown.sh b/dots/bin/hyprShutdown.sh new file mode 100755 index 0000000..74cb5c8 --- /dev/null +++ b/dots/bin/hyprShutdown.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +# klevstul :: 26.02.25 + +hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit diff --git a/dots/hyprland/hyprland.conf b/dots/hyprland/hyprland.conf index 31bae5c..8bb9f93 100644 --- a/dots/hyprland/hyprland.conf +++ b/dots/hyprland/hyprland.conf @@ -4,7 +4,7 @@ #################################################### -### key programs ### +### 0 : key programs ### #################################################### # https://wiki.hypr.land/Configuring/Keywords/ @@ -22,29 +22,6 @@ exec-once = startup.sh #exec-once = hypropolkitagent -#################################################### -### monitors ### -#################################################### -# https://wiki.hypr.land/Configuring/Monitors/ - -# nifty, to list all monitors/displays: -# `hyprctl monitors all` - -# NOTE: -# monitors are controlled using `hyprmon`, which is executed at startup by `startup.sh` - -# -------------------------------------------------- -# # example configuration of four displays (three active): -# monitor = eDP-1, disable # disable laptop monitor -# monitor = DP-2, highres@highrr, 0x-750, 1, transform, 3 # rotate the left monitor 270 degrees, and lower it -# monitor = DP-1, highres@highrr, auto, 0.83 # main monitor: monitor = name, res, pos, scale -# monitor = HDMI-A-1, highres@highrr, auto, 1, transform, 1 # rotate right monitor 90 degrees -# -------------------------------------------------- - -# default settings for new displays that are connected (they will show up to the right of the rightmost display): -monitor = , preferred, auto, auto - - #################################################### ### environment variables ### #################################################### @@ -54,68 +31,91 @@ env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 +#################################################### +### input & such ### +#################################################### +# - - - - - - - - - - - - - - - - - - - - - - - - - +# input +# - - - - - +# https://wiki.hypr.land/Configuring/Variables/#input +# - - - - - - - - - - - - - - - - - - - - - - - - - +input { + kb_layout = us,no + kb_variant = + kb_model = + kb_options = grp:caps_toggle,grp_led:scroll + kb_rules = + follow_mouse = 1 + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + touchpad { + natural_scroll = false + } +} +# - - - - - - - - - - - - - - - - - - - - - - - - - +# gesture +# - - - - - +# https://wiki.hypr.land/Configuring/Gestures +# - - - - - - - - - - - - - - - - - - - - - - - - - +gesture = 3, horizontal, workspace - - - +# - - - - - - - - - - - - - - - - - - - - - - - - - +# per-device input configssc +# - - - - - +# https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs +# - - - - - - - - - - - - - - - - - - - - - - - - - +device { + name = epic-mouse-v1 + sensitivity = -0.5 +} #################################################### +### look & feel ### #################################################### -############## DEFAULT SETTINGS BELOW ############## -#################################################### -#################################################### - - -################### -### PERMISSIONS ### -################### - -# See https://wiki.hypr.land/Configuring/Permissions/ -# Please note permission changes here require a Hyprland restart and are not applied on-the-fly -# for security reasons - -# ecosystem { -# enforce_permissions = 1 -# } - -# permission = /usr/(bin|local/bin)/grim, screencopy, allow -# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow -# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow - - -##################### -### LOOK AND FEEL ### -##################### - -# Refer to https://wiki.hypr.land/Configuring/Variables/ +# https://wiki.hypr.land/Configuring/Variables/ +# - - - - - - - - - - - - - - - - - - - - - - - - - +# general +# - - - - - # https://wiki.hypr.land/Configuring/Variables/#general +# - - - - - - - - - - - - - - - - - - - - - - - - - general { - gaps_in = 5 - gaps_out = 20 - + gaps_in = 4 + gaps_out = 4 border_size = 2 - # https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors + # colour info: https://wiki.hypr.land/Configuring/Variables/#variable-types col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) - # Set to true enable resizing windows by clicking and dragging on borders and gaps + # set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = false - # Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on + # see https://wiki.hypr.land/Configuring/Tearing/ before enabling this allow_tearing = false + # dwindle: https://wiki.hypr.land/Configuring/Dwindle-Layout/ + # Dwindle is a BSPWM-like (Binary Space Partition Window Manager) layout, where every window on a workspace is a member of a binary tree. + # master: https://wiki.hypr.land/Configuring/Master-Layout/ + # makes one (or more) window(s) be the “master”, taking (by default) the left part of the screen, and tiles the rest on the right + # scrolling: https://wiki.hypr.land/Configuring/Scrolling-Layout/ + # windows get positioned on an infinitely growing tape + # monocle: https://wiki.hypr.land/Configuring/Monocle-Layout/ + # windows are always taking up the entire available space layout = dwindle } + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# decoration +# - - - - - # https://wiki.hypr.land/Configuring/Variables/#decoration +# - - - - - - - - - - - - - - - - - - - - - - - - - decoration { rounding = 10 rounding_power = 2 @@ -141,9 +141,15 @@ decoration { } } + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# animations +# - - - - - # https://wiki.hypr.land/Configuring/Variables/#animations +# - - - - - - - - - - - - - - - - - - - - - - - - - + animations { - enabled = yes, please :) + enabled = true # Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves # NAME, X0, Y0, X1, Y1 @@ -174,95 +180,112 @@ animations { animation = zoomFactor, 1, 7, quick } -# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/ -# "Smart gaps" / "No gaps when only" -# uncomment all if you wish to use that. -# workspace = w[tv1], gapsout:0, gapsin:0 -# workspace = f[1], gapsout:0, gapsin:0 -# windowrule { -# name = no-gaps-wtv1 -# match:float = false -# match:workspace = w[tv1] -# -# border_size = 0 -# rounding = 0 -# } -# -# windowrule { -# name = no-gaps-f1 -# match:float = false -# match:workspace = f[1] -# -# border_size = 0 -# rounding = 0 -# } +# - - - - - - - - - - - - - - - - - - - - - - - - - +# dwindle layout +# - - - - - +# https://wiki.hypr.land/Configuring/Dwindle-Layout/ +# - - - - - - - - - - - - - - - - - - - - - - - - - -# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more dwindle { - pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = true # You probably want this + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this } -# See https://wiki.hypr.land/Configuring/Master-Layout/ for more +# - - - - - - - - - - - - - - - - - - - - - - - - - +# master layout +# - - - - - +# https://wiki.hypr.land/Configuring/Master-Layout/ +# - - - - - - - - - - - - - - - - - - - - - - - - - master { new_status = master } +# - - - - - - - - - - - - - - - - - - - - - - - - - +# misc +# - - - - - # https://wiki.hypr.land/Configuring/Variables/#misc +# - - - - - - - - - - - - - - - - - - - - - - - - - + misc { - force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers - disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( + force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :( + + mouse_move_enables_dpms = false # mouse move will not turn on screen(s) + key_press_enables_dpms = true # key press will turn on screen(s) } -############# -### INPUT ### -############# +#################################################### +### binds (keebindings) ### +#################################################### +# https://wiki.hypr.land/Configuring/Binds/ -# https://wiki.hypr.land/Configuring/Variables/#input -input { - kb_layout = us,no - kb_variant = - kb_model = - kb_options = grp:caps_toggle,grp_led:scroll - kb_rules = +# - - - - - - - - - - - - - - - - - - - - - - - - - +# keysyms (use segment after XKB_KEY_): +# https://github.com/xkbcommon/libxkbcommon/blob/master/include/xkbcommon/xkbcommon-keysyms.h +# +# three keys bind example: +# bind = $mainMod_SHIFT, space, togglefloating +# +# bind[flags]=.. +# bindrl=MOD,KEY,exec,amongus +# flags: +# l -> locked, aka. works also when an an input inhibitor (e.g. a lockscreen) is active +# r -> release, will trigger on release of a key +# e -> repeat, will repeat when held. +# m -> mouse +# - - - - - - - - - - - - - - - - - - - - - - - - - - follow_mouse = 1 +# set "windows" key as main modifier +$mainMod = SUPER - sensitivity = 0 # -1.0 - 1.0, 0 means no modification. - - touchpad { - natural_scroll = false - } -} - -# See https://wiki.hypr.land/Configuring/Gestures -gesture = 3, horizontal, workspace - -# Example per-device config -# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more -device { - name = epic-mouse-v1 - sensitivity = -0.5 -} - - -################### -### KEYBINDINGS ### -################### - -# See https://wiki.hypr.land/Configuring/Keywords/ -$mainMod = SUPER # Sets "Windows" key as main modifier - -# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more -bind = $mainMod, RETURN, exec, $terminal -bind = $mainMod, Q, killactive, -bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit -bind = $mainMod, F3, exec, $fileManager -bind = $mainMod, V, togglefloating, +# startup of key programs bind = $mainMod, D, exec, $menu -bind = $mainMod, P, pseudo, # dwindle -bind = $mainMod, J, togglesplit, # dwindle +bind = $mainMod, RETURN, exec, $terminal +bind = $mainMod, F3, exec, $fileManager + +# key operations +bind = $mainMod, L, exec, hyprlock # lock +bind = $mainMod, O, exec, sleep 1; hyprctl dispatch dpms off; hyprlock # monitor off & lock (had to sleep to avoid immediate wakeup) +bind = $mainMod, Q, killactive, +#bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit +#bind = $mainMod, Escape, exit, # exit + +# view mode change +bind = $mainMod, V, togglefloating, +bind = $mainMod, P, pseudo, # dwindle - pseudotiled windows retain their floating size when tiled +bind = $mainMod, W, togglesplit, # dwindle - toggle split mode (top/side) + +# fullscreen +bind = $mainMod, F, fullscreen, 1 # fullscreen, with border +bind = $mainMod, G, fullscreen, 0 # fullscreen, fill entire screen + +# togglegroup +# https://www.reddit.com/r/hyprland/comments/1nfpjps/about_togglegroup/ +bind = $mainMod, T, togglegroup +bind = SHIFT, TAB, changegroupactive, t # t: forward, b: backwards +#bind = SUPER_SHIFT, TAB, changegroupactive, b + +# screenshot +bind = $mainMod SHIFT, PRINT, exec, hyprshot -m output # monitor +bind = $mainMod, PRINT, exec, hyprshot -m window # window +bind = , PRINT, exec, hyprshot -m region # region + +# view mode +#bind = $mainMod, M, exec, hyprctl keyword general:layout "master" # M_master +#bind = $mainMod, N, exec, hyprctl keyword general:layout "dwindle" # dwi_N_dle + +# split mode +#bind = $mainMod, H, layoutmsg, preselect r # next window to the right (horizontal mode) +#bind = $mainMod SHIFT, H, layoutmsg, preselect r # next window to the left +#bind = $mainMod, V, layoutmsg, preselect d # next window to the top (vertical mode) +#bind = $mainMod SHIFT, V, layoutmsg, preselect d # next window to the bottom + +# window cycle +# https://github.com/hyprwm/Hyprland/issues/2061 +#bind = ALT, TAB, cyclenext # cycle windows in same workspace +#bind = ALT, TAB, bringactivetotop # bring focused window to top +bind = ALT, Tab, focuscurrentorlast # switch focus from current to previous window # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l @@ -313,8 +336,8 @@ bind = $mainMod CTRL, up, resizeactive, 0 -40 bind = $mainMod CTRL, down, resizeactive, 0 40 # Example special workspace (scratchpad) -bind = $mainMod, S, togglespecialworkspace, magic -bind = $mainMod SHIFT, S, movetoworkspace, special:magic +#bind = $mainMod, S, togglespecialworkspace, magic +#bind = $mainMod SHIFT, S, movetoworkspace, special:magic # Scroll through existing workspaces with mainMod + scroll #bind = $mainMod, mouse_down, workspace, e+1 @@ -338,14 +361,87 @@ bindl = , XF86AudioPause, exec, playerctl play-pause bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioPrev, exec, playerctl previous -############################## -### WINDOWS AND WORKSPACES ### -############################## +# focus window +# `hyprctl clients` - for window names +#bind = $mainMod, semicolon, focuswindow, kitty # cli +#bind = $mainMod, G, focuswindow, gimp +#bind = $mainMod, K, focuswindow, GitKraken # git[K]raken +#bind = $mainMod, C, focuswindow, VSCodium # vs[C]odium +#bind = $mainMod, B, focuswindow, Sublime Text # su[B]lime +#bind = $mainMod, Y, focuswindow, reaper # [y] not reaper +#bind = $mainMod, I, focuswindow, firefox # [I]nternet -# See https://wiki.hypr.land/Configuring/Window-Rules/ for more -# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules +# cycle in between workspaces +binds { + allow_workspace_cycles = true +} +bind = SUPER, Tab, workspace, previous -# Example windowrules that are useful + +#################################################### +### monitors ### +#################################################### +# https://wiki.hypr.land/Configuring/Monitors/ + +# nifty, to list all monitors/displays: +# `hyprctl monitors all` + +# NOTE: +# monitors are controlled using `hyprmon`, which is executed at startup by `startup.sh` + +# -------------------------------------------------- +# # example configuration of four displays (three active): +# monitor = eDP-1, disable # disable laptop monitor +# monitor = DP-2, highres@highrr, 0x-750, 1, transform, 3 # rotate the left monitor 270 degrees, and lower it +# monitor = DP-1, highres@highrr, auto, 0.83 # main monitor: monitor = name, res, pos, scale +# monitor = HDMI-A-1, highres@highrr, auto, 1, transform, 1 # rotate right monitor 90 degrees +# -------------------------------------------------- + +# default settings for new displays that are connected (they will show up to the right of the rightmost display): +monitor = , preferred, auto, auto + + +#################################################### +### nvidia ### +#################################################### +# https://wiki.hypr.land/Nvidia/ + +env = LIBVA_DRIVER_NAME,nvidia +env = __GLX_VENDOR_LIBRARY_NAME,nvidia + + +#################################################### +### plugins ### +#################################################### +https://wiki.hypr.land/Plugins/Using-Plugins/ + +#plugin { +#} + + +#################################################### +### windows and workspaces ### +#################################################### + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# windows +# - - - - - +# https://wiki.hypr.land/Configuring/Window-Rules/ +# - - - - - - - - - - - - - - - - - - - - - - - - - + +# 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 +# +# `hyprctl clients` - for class names + +# [fk 260226: might be obsolete] +# something is off with onlyoffice, as it is floating by default. hence this one. +# windowrulev2 = tile,class:^(ONLYOFFICE Desktop Editors)$ windowrule { # Ignore maximize requests from all apps. You'll probably like this. @@ -371,422 +467,29 @@ windowrule { # Hyprland-run windowrule windowrule { name = move-hyprland-run - match:class = hyprland-run move = 20 monitor_h-120 float = yes } +# always have speedcrunch floating +# same as: +# windowrule = match:class .*(speedcrunch).*, float on +# windowrule = match:class .*(speedcrunch).*, size 800 500 +windowrule { + name = always-make-speedcrunch-float + match:class = .*(speedcrunch).* + float = on + size = 800 500 +} + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# workspaces +# - - - - - +# https://wiki.hypr.land/Configuring/Workspace-Rules/ +# - - - - - - - - - - - - - - - - - - - - - - - - - + workspace = 1, monitor:DP-1, default:true workspace = 2, monitor:DP-2, default:true workspace = 3, monitor:HDMI-A-1, default:true - - - - - -############## -### NVIDIA ### -############## - -env = LIBVA_DRIVER_NAME,nvidia -env = __GLX_VENDOR_LIBRARY_NAME,nvidia - - - - - - -# MISC - -# SpeedCrunch -# org.speedcrunch.speedcrunch - -#windowrule = match:class org.speedcrunch.speedcrunch, float on -windowrule = match:class .*(speedcrunch).*, float on -windowrule = match:class .*(speedcrunch).*, size 800 500 - -#windowrule = match:class MEGAsync, fullscreen on - - - -#windowrule = size 800 600, ^(kitty)$ resizes any window with the title matching kitty to 800x600 pixels. - -#windowrule = size 90% 80%, class:^(kitty)$ resizes the kitty terminal to 90% of the screen width and 80% of the height. - - - -binds { -allow_workspace_cycles = true -} -bind = SUPER, Tab, workspace, previous - - - - - - - -####### OBSOLETE BELOW #### - - -# -------------------------------------------------- -# klevstul -# ----- -# source documentation: -# https://wiki.hyprland.org/ -# -------------------------------------------------- - -# - - - - - - - - - - - - - - - - - - - - - - - - - -# monitors -# - - - - - -# https://wiki.hyprland.org/Configuring/Monitors/ -# - - - - - - - - - - - - - - - - - - - - - - - - - -monitor=,preferred,auto,auto - -# - - - - - - - - - - - - - - - - - - - - - - - - - -# keywords -# - - - - - -# https://wiki.hyprland.org/Configuring/Keywords/ -# - - - - - - - - - - - - - - - - - - - - - - - - - - -# execute at launch -exec-once = startup.sh - -# Source a file (multi-file configs) -# source = ~/.config/hypr/myColors.conf - -# Some default env vars. -env = XCURSOR_SIZE,24 - -# - - - - - - - - - - - - - - - - - - - - - - - - - -# input -# - - - - - -# https://wiki.hyprland.org/Configuring/Variables/#input -# - - - - - - - - - - - - - - - - - - - - - - - - - -input { - - # switch keyboard layout - # https://wiki.hyprland.org/Configuring/Uncommon-tips--tricks/ - kb_layout = us,no - kb_options = grp:caps_toggle,grp_led:scroll - kb_variant = - kb_model = - kb_rules = - - follow_mouse = 1 - - touchpad { - natural_scroll = no - } - - sensitivity = 0 # -1.0 - 1.0, 0 means no modification. -} - -# - - - - - - - - - - - - - - - - - - - - - - - - - -# input -# - - - - - -# https://wiki.hyprland.org/Configuring/Variables/#general -# - - - - - - - - - - - - - - - - - - - - - - - - - -general { - - gaps_in = 4 - gaps_out = 4 - border_size = 2 - col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg - col.inactive_border = rgba(595959aa) - - layout = dwindle # {dwindle, master} - - # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on - allow_tearing = false - -} - -# - - - - - - - - - - - - - - - - - - - - - - - - - -# decoration -# - - - - - -# https://wiki.hyprland.org/Configuring/Variables/#decoration -# - - - - - - - - - - - - - - - - - - - - - - - - - -decoration { - - rounding = 10 - - blur { - enabled = true - size = 3 - passes = 1 - } - - drop_shadow = yes - shadow_range = 4 - shadow_render_power = 3 - col.shadow = rgba(1a1a1aee) - -} - -# - - - - - - - - - - - - - - - - - - - - - - - - - -# animations -# - - - - - -# https://wiki.hyprland.org/Configuring/Animations/ -# - - - - - - - - - - - - - - - - - - - - - - - - - -animations { - - enabled = yes - - 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 layout -# - - - - - -# https://wiki.hyprland.org/Configuring/Dwindle-Layout/ -# - - - - - - - - - - - - - - - - - - - - - - - - - -dwindle { - - 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 layout -# - - - - - -# https://wiki.hyprland.org/Configuring/Master-Layout/ -# - - - - - - - - - - - - - - - - - - - - - - - - - -master { - - new_is_master = true - -} - -# - - - - - - - - - - - - - - - - - - - - - - - - - -# gestures -# - - - - - -# https://wiki.hyprland.org/Configuring/Variables/#gestures -# - - - - - - - - - - - - - - - - - - - - - - - - - -gestures { - - workspace_swipe = off - -} - -# - - - - - - - - - - - - - - - - - - - - - - - - - -# binds -# - - - - - -# https://wiki.hyprland.org/Configuring/Variables/#binds -# - - - - - - - - - - - - - - - - - - - - - - - - - -binds { - - allow_workspace_cycles = yes - -} - -# - - - - - - - - - - - - - - - - - - - - - - - - - -# misc -# - - - - - -# https://wiki.hyprland.org/Configuring/Variables/#misc -# - - - - - - - - - - - - - - - - - - - - - - - - - -misc { - - disable_hyprland_logo = false - force_default_wallpaper = 0 - - # only key presses will turn the screen on - mouse_move_enables_dpms = false - key_press_enables_dpms = true - -} - -# - - - - - - - - - - - - - - - - - - - - - - - - - -# per-device input configssc -# - - - - - -# https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs -# - - - - - - - - - - - - - - - - - - - - - - - - - -device { - - name=epic-mouse-v1 - sensitivity = -0.5 - -} - -# - - - - - - - - - - - - - - - - - - - - - - - - - -# window rules -# - - - - - -# https://wiki.hyprland.org/Configuring/Window-Rules/ -# - - - - - - - - - - - - - - - - - - - - - - - - - - -# 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 -# `hyprctl clients` - for class names -windowrulev2 = tile,class:^(ONLYOFFICE Desktop Editors)$ # something is off with onlyoffice, as it is floating by default. hence this one. - -# - - - - - - - - - - - - - - - - - - - - - - - - - -# plugins -# - - - - - -# https://wiki.hyprland.org/Plugins/Using-Plugins/ -# - - - - - - - - - - - - - - - - - - - - - - - - - -plugin { -} - -# - - - - - - - - - - - - - - - - - - - - - - - - - -# binds -# - - - - - -# https://wiki.hyprland.org/Configuring/Binds/ -# -# keysyms (use segment after XKB_KEY_): -# https://github.com/xkbcommon/libxkbcommon/blob/master/include/xkbcommon/xkbcommon-keysyms.h -# -# three keys bind example: -# bind = $mainMod_SHIFT, space, togglefloating -# -# bind[flags]=.. -# bindrl=MOD,KEY,exec,amongus -# flags: -# l -> locked, aka. works also when an an input inhibitor (e.g. a lockscreen) is active -# r -> release, will trigger on release of a key -# e -> repeat, will repeat when held. -# m -> mouse -# - - - - - - - - - - - - - - - - - - - - - - - - - - -$mainMod = SUPER - -# execute programs -bind = $mainMod, RETURN, exec, kitty -bind = $mainMod, Q, killactive, -bind = $mainMod, F3, exec, pcmanfm -bind = $mainMod, D, exec, wofi --show drun -bind = $mainMod, O, exec, sleep 1; hyprctl dispatch dpms off; hyprlock # monitor off & lock (had to sleep to avoid immediate wakeup) -bind = $mainMod, L, exec, hyprlock # lock -bind = $mainMod, T, togglegroup - -# misc -bind = SHIFT, TAB, changegroupactive, t # t: forward, b: backwards -bind = $mainMod, Escape, exit, # exit -bind = $mainMod, space, togglefloating # floting (toggle) -bind = $mainMod, TAB, workspace, previous # cycle workspace - -# window cycle -# https://github.com/hyprwm/Hyprland/issues/2061 -#bind = ALT, TAB, cyclenext # cycle windows in same workspace -#bind = ALT, TAB, bringactivetotop # bring focused window to top -bind = ALT, Tab, focuscurrentorlast # switch focus from current to previous window - -# screenshot -bind = $mainMod SHIFT, PRINT, exec, hyprshot -m output # monitor -bind = $mainMod, PRINT, exec, hyprshot -m window # window -bind = , PRINT, exec, hyprshot -m region # region - -# fullscreen -bind = $mainMod, F, fullscreen, 1 # fullscreen, with border -bind = $mainMod, G, fullscreen, 0 # fullscreen, fill entire screen - -# special workspace (scratchpad) -bind = $mainMod, S, togglespecialworkspace, magic -bind = $mainMod SHIFT, S, movetoworkspace, special:magic - -# change keyboard layout -# `hyprctl devices` - for keyboard names -# https://wiki.hyprland.org/Configuring/Using-hyprctl/#switchxkblayout -#bind = , Caps_Lock, exec, hyprctl switchxkblayout at-translated-set-2-keyboard next -#bind = , Caps_Lock, exec, hyprctl switchxkblayout usb-keyboard next - -# view mode -bind = $mainMod, M, exec, hyprctl keyword general:layout "master" # M(master) -bind = $mainMod, N, exec, hyprctl keyword general:layout "dwindle" # (dwi)N(dle) -bind = $mainMod, P, pseudo, # dwindle mode - pseudotiled windows retain their floating size when tiled. -bind = $mainMod, W, togglesplit, # dwindle mode - toggle split mode (top/side) - -# split mode -bind = $mainMod, H, layoutmsg, preselect r # next window to the right (horizontal mode) -bind = $mainMod SHIFT, H, layoutmsg, preselect r # next window to the left -bind = $mainMod, V, layoutmsg, preselect d # next window to the top (vertical mode) -bind = $mainMod SHIFT, V, layoutmsg, preselect d # next window to the bottom - -# 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 - -# media player control -bind = $mainMod, XF86AudioPlay, exec, playerctl play -bind = $mainMod, XF86AudioStop, exec, playerctl pause -bind = $mainMod, XF86AudioNext, exec, playerctl next -bind = $mainMod, XF86AudioPrev, exec, playerctl previous - -# volume control -bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ -bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- -bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle - -# focus window -# `hyprctl clients` - for window names -bind = $mainMod, semicolon, focuswindow, kitty # cli -bind = $mainMod, G, focuswindow, gimp -bind = $mainMod, K, focuswindow, GitKraken # git[K]raken -bind = $mainMod, C, focuswindow, VSCodium # vs[C]odium -bind = $mainMod, B, focuswindow, Sublime Text # su[B]lime -bind = $mainMod, Y, focuswindow, reaper # [y] not reaper -bind = $mainMod, I, focuswindow, firefox # [I]nternet - -# move window -bind = $mainMod SHIFT, left, movewindoworgroup, l -bind = $mainMod SHIFT, right, movewindoworgroup, r -bind = $mainMod SHIFT, up, movewindoworgroup, u -bind = $mainMod SHIFT, down, movewindoworgroup, d - -bind = $mainMod ALT, left, moveactive, -40 0 -bind = $mainMod ALT, right, moveactive, 40 0 -bind = $mainMod ALT, up, moveactive, 0 -40 -bind = $mainMod ALT, down, moveactive, 0 40 - -# resize window -bind = $mainMod CTRL, left, resizeactive, -40 0 -bind = $mainMod CTRL, right, resizeactive, 40 0 -bind = $mainMod CTRL, up, resizeactive, 0 -40 -bind = $mainMod CTRL, down, resizeactive, 0 40 - -# 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 diff --git a/dots/librewolf/userChrome.css b/dots/librewolf/userChrome.css new file mode 100644 index 0000000..72f25ad --- /dev/null +++ b/dots/librewolf/userChrome.css @@ -0,0 +1,18 @@ +/* disable top bar and top tabs */ + +/* +#TabsToolbar { + visibility: collapse; +} + +#titlebar { + display: none; +} +*/ + +/* change menu background color */ +#main-window, +#toolbarpaletteitem-menu-button, +#appmenu-toolbar-button { + background-color: #6e0303 !important; +} diff --git a/scripts/99_deploy.sh b/scripts/99_deploy.sh index 6f354f4..e452ff8 100755 --- a/scripts/99_deploy.sh +++ b/scripts/99_deploy.sh @@ -296,13 +296,18 @@ if [ ${operation} == "dots" ] ; then # librewolf file_name=policies.json - ffpd=$(firefox_profile_dir) + ffpd=$(librewolf_profile_dir) if [[ ${ffpd} == error* ]] ; then echo ${ffpd} else file_name=user.js file_path=${ffpd} - deploy_file "${dots_trg}/firefox/${file_name}" "${file_path}/${file_name}" + deploy_file "${dots_trg}/librewolf/${file_name}" "${file_path}/${file_name}" + + file_name=userChrome.css + file_path=${ffpd}/chrome + create_dir ${file_path} + deploy_file "${dots_trg}/librewolf/${file_name}" "${file_path}/${file_name}" fi # gtk (settings found using lxappearance) @@ -321,6 +326,13 @@ if [ ${operation} == "dots" ] ; then create_dir ${file_path} deploy_file "${dots_trg}/helix/${file_name}" "${file_path}/${file_name}" + # hyprland + file_name=hyprland.conf + file_path=/home/${system_user}/.config/hypr + create_dir ${file_path} + deploy_file "${dots_trg}/hyprland/${file_name}" "${file_path}/${file_name}" + hyprctl reload + # pcmanfm # bookmarks found in "dots/gtk/.gtk-bookmarks" file_name=pcmanfm.conf