diff --git a/user/firefox.nix b/user/firefox.nix index ea3c3b5..4699999 100644 --- a/user/firefox.nix +++ b/user/firefox.nix @@ -1,7 +1,12 @@ { config, pkgs, lib, font, ... }: let inherit (pkgs.uservars) desktop browser; bugfixedFirefox = pkgs.firefox-esr-unwrapped // { requireSigning = false; allowAddonSideload = true; }; + cfg = config.packages.firefox; in { + options.packages.firefox = { + hideTitleBar = lib.mkEnableOption "Hide firefox title bar"; + }; + config = { programs.firefox = { enable = true; @@ -92,7 +97,7 @@ in { "devtools.chrome.enabled" = true; "devtools.debugger.remote-enabled" = true; }; - userChrome = lib.mkIf (desktop == "sway") '' + userChrome = lib.mkIf cfg.hideTitleBar '' #titlebar { display: none !important; } #sidebar-header { display: none !important; } ''; diff --git a/user/home.nix b/user/home.nix index fac2170..8defc45 100644 --- a/user/home.nix +++ b/user/home.nix @@ -7,7 +7,7 @@ ./vscode ./fish ./firefox.nix - ./hyprland.nix + ./hyprland ./alacritty.nix ./git.nix ./ssh.nix diff --git a/user/hyprland.nix b/user/hyprland.nix deleted file mode 100644 index 4b29468..0000000 --- a/user/hyprland.nix +++ /dev/null @@ -1,127 +0,0 @@ -{ config, pkgs, lib, ... }: { - config = lib.mkIf (pkgs.uservars.desktop == "hyprland") { - wayland.windowManager.hyprland = { - enable = false; - extraConfig = '' - monitor=,preferred,auto,1 - - input { - kb_file= - kb_layout=us(colemak) - kb_variant= - kb_model= - kb_options= - kb_rules= - - follow_mouse=1 - - touchpad { - natural_scroll=no - } - } - - general { - sensitivity=1.0 # for mouse cursor - main_mod=SUPER - - gaps_in=5 - gaps_out=10 - border_size=2 - col.active_border=0xffF44336 - col.inactive_border=0x66333333 - - apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse) - - # damage_tracking=full # leave it on full unless you hate your GPU and want to make it suffer - } - - # decoration { - # rounding=5 - # blur=1 - # # blur_size=3 # minimum 1 - # # blur_passes=1 # minimum 1, more passes = more resource intensive. - # # Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts. - # # if you want heavy blur, you need to up the blur_passes. - # # the more passes, the more you can up the blur_size without noticing artifacts. - # } - - animations { - enabled=1 - animation=windows,1,7,default - animation=border,1,10,default - animation=fade,1,10,default - animation=workspaces,1,6,default - } - - dwindle { - pseudotile=0 # enable pseudotiling on dwindle - } - - gestures { - workspace_swipe=no - } - - # example window rules - # for windows named/classed as abc and xyz - #windowrule=move 69 420,abc - #windowrule=size 420 69,abc - #windowrule=tile,xyz - #windowrule=float,abc - #windowrule=pseudo,abc - #windowrule=monitor 0,xyz - - # example binds - bind=SUPER,Q,exec,kitty - bind=SUPER,RETURN,exec,alacritty - bind=SUPER,x,killactive, - bind=SUPER,M,exit, - # bind=SUPER,E,exec,dolphin - bind=SUPER,V,togglefloating, - bind=SUPER,s,exec,wlauncher - bind=SUPER,P,pseudo, - - bind=SUPER,f,fullscreen - - bind=SUPER,n,movefocus,l - bind=SUPER,o,movefocus,r - bind=SUPER,i,movefocus,u - bind=SUPER,e,movefocus,d - - bind=SUPER,left,movefocus,l - bind=SUPER,right,movefocus,r - bind=SUPER,up,movefocus,u - bind=SUPER,down,movefocus,d - - bind=SUPER,1,workspace,1 - bind=SUPER,2,workspace,2 - bind=SUPER,3,workspace,3 - bind=SUPER,4,workspace,4 - bind=SUPER,5,workspace,5 - bind=SUPER,6,workspace,6 - bind=SUPER,7,workspace,7 - bind=SUPER,8,workspace,8 - bind=SUPER,9,workspace,9 - bind=SUPER,0,workspace,10 - - bind=ALT,1,movetoworkspace,1 - bind=ALT,2,movetoworkspace,2 - bind=ALT,3,movetoworkspace,3 - bind=ALT,4,movetoworkspace,4 - bind=ALT,5,movetoworkspace,5 - bind=ALT,6,movetoworkspace,6 - bind=ALT,7,movetoworkspace,7 - bind=ALT,8,movetoworkspace,8 - bind=ALT,9,movetoworkspace,9 - bind=ALT,0,movetoworkspace,10 - - bind=SUPER,u,workspace,e-1 - bind=SUPER,y,workspace,e+1 - - bind=SUPER,mouse_down,workspace,e-1 - bind=SUPER,mouse_up,workspace,e+1 - ''; - }; - # home.file.".config/eww".source = ./eww; - # home.packages = with pkgs; [ eww-wayland jq ]; - }; -} diff --git a/user/hyprland/default.nix b/user/hyprland/default.nix new file mode 100644 index 0000000..2c01888 --- /dev/null +++ b/user/hyprland/default.nix @@ -0,0 +1,54 @@ +{ config, pkgs, lib, ... }: { + imports = [ + ../sway/kanshi.nix + ../sway/mako.nix + # ../sway/sway-binds.nix + # ../sway/sway-modes.nix + # ../sway/sway-assigns.nix + # ../sway/swayidle.nix + # ../sway/swaylock.nix + ../sway/theme.nix + ]; + + config = lib.mkIf (pkgs.uservars.desktop == "hyprland") { + wayland.windowManager.hyprland = { + enable = false; + extraConfig = lib.readFile ./hyprland.conf; + # systemd.enable = true; + }; + # home.file.".config/eww".source = ./eww; + + packages.firefox.hideTitleBar = true; + + home.packages = with pkgs; [ + eww-wayland + jq + hyprpaper + wdisplays + + waybar + dhist + demoji + bmenu + wdmenu + wlauncher + volumesh + showkeys + pamixer + libnotify + xdg-utils + screenshotsh + color_picker + wf-recorder + wl-clipboard + wtype + wl-crosshair + + grim + swappy + (tesseract5.override { + enableLanguages = [ "eng" "por" ]; + }) + ]; + }; +} diff --git a/user/hyprland/hyprland.conf b/user/hyprland/hyprland.conf new file mode 100644 index 0000000..bba5a18 --- /dev/null +++ b/user/hyprland/hyprland.conf @@ -0,0 +1,254 @@ + +######################################################################################## +AUTOGENERATED HYPR CONFIG. +PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, +OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. +######################################################################################## + +# +# Please note not all available settings / options are set here. +# For a full list, see the wiki +# + +# autogenerated = 1 # remove this line to remove the warning + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=,preferred,auto,auto + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +exec-once = waybar & hyprpaper & firefox + +# 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 = us(colemak) + kb_variant = + 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 = 10 + border_size = 2 + col.active_border = rgba(F44336ee) rgba(202020ee) 45deg + col.inactive_border = rgba(202020ee) + + layout = master + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 5 + + blur { + enabled = true + size = 3 + passes = 1 + } + + 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 + no_gaps_when_only = 1 +} + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off +} + +misc { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +device:epic-mouse-v1 { + sensitivity = -0.5 +} + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + + +windowrulev2 = workspace 2, class:qutebrowser +windowrulev2 = workspace 2, class:qutebrowser +windowrulev2 = workspace 2, class:firefox +windowrulev2 = workspace 2, class:firefox +windowrulev2 = workspace 2, class:Chromium +windowrulev2 = workspace 2, class:chromium + +windowrulev2 = workspace 6, class:org.nicotine_plus.Nicotine +windowrulev2 = workspace 6, class:deluge +windowrulev2 = workspace 6, class:com.obsproject.Studio + +windowrulev2 = workspace 7, class:thunderbird +windowrulev2 = workspace 7, class:astroid + +windowrulev2 = workspace 9, class:.*[Ss]team.* +windowrulev2 = workspace 9, class:.*[Ss]team.* +windowrulev2 = workspace 9, class:[Ll]utris + +windowrulev2 = workspace 10, class:.*[Tt]elegram.* +windowrulev2 = workspace 10, class:.*[Tt]elegram.* +windowrulev2 = workspace 10, class:Jitsi Meet +windowrulev2 = workspace 10, class:discord +windowrulev2 = workspace 10, class:Discord +windowrulev2 = workspace 10, class:WebCord +windowrulev2 = workspace 10, class:WebCord +windowrulev2 = workspace 10, class:Element +windowrulev2 = workspace 10, class:Element + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, Return, exec, alacritty +bind = $mainMod, X, killactive, +# bind = $mainMod, M, exit, +bind = $mainMod Control, Return, exec, thunar +bind = $mainMod Shift, Space, togglefloating, +bind = $mainMod, R, exec, wofi --show drun +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 + +# Example special workspace (scratchpad) +bind = $mainMod, j, togglespecialworkspace, magic +bind = $mainMod SHIFT, j, movetoworkspace, 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 + +bind = $mainMod, S, exec, wlauncher +bind = $mainMod, B, layoutmsg, swapwithmaster + + bind=$mainMod,f,fullscreen + + bind=$mainMod,n,movefocus,l + bind=$mainMod,o,movefocus,r + bind=$mainMod,i,movefocus,u + bind=$mainMod,e,movefocus,d + + bind=$mainMod,left,movefocus,l + bind=$mainMod,right,movefocus,r + bind=$mainMod,up,movefocus,u + bind=$mainMod,down,movefocus,d + + 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 + + # bind=ALT,1,movetoworkspace,1 + # bind=ALT,2,movetoworkspace,2 + # bind=ALT,3,movetoworkspace,3 + # bind=ALT,4,movetoworkspace,4 + # bind=ALT,5,movetoworkspace,5 + # bind=ALT,6,movetoworkspace,6 + # bind=ALT,7,movetoworkspace,7 + # bind=ALT,8,movetoworkspace,8 + # bind=ALT,9,movetoworkspace,9 + # bind=ALT,0,movetoworkspace,10 + + bind=$mainMod,u,workspace,e-1 + bind=$mainMod,y,workspace,e+1 + + bind=$mainMod,mouse_down,workspace,e-1 + bind=$mainMod,mouse_up,workspace,e+1 diff --git a/user/sway/default.nix b/user/sway/default.nix index 0449e30..c79e0d8 100644 --- a/user/sway/default.nix +++ b/user/sway/default.nix @@ -98,6 +98,8 @@ in indicator = true; }; + packages.firefox.hideTitleBar = true; + home.packages = with pkgs; [ sway swaybg diff --git a/user/waybar/default.nix b/user/waybar/default.nix index 90d2f49..f6163b8 100644 --- a/user/waybar/default.nix +++ b/user/waybar/default.nix @@ -79,6 +79,8 @@ in "sway/language" = { format = "{short} {variant}"; }; "hyprland/workspaces" = { enable-bar-scroll = true; + on-scroll-up = "hyprctl dispatch workspace e-1"; + on-scroll-down = "hyprctl dispatch workspace e+1"; format = "{icon}"; format-icons = { "1" = ""; diff --git a/user/waybar/style.css b/user/waybar/style.css index f9c0fb1..0f82fea 100644 --- a/user/waybar/style.css +++ b/user/waybar/style.css @@ -20,7 +20,8 @@ window#waybar.solo { background-color: transparent; border: 3px solid transparent; } -#workspaces button.focused { +#workspaces button.focused, +#workspaces button.active { color: @color_txt@; border-top: 3px solid @accent_color@; }