diff --git a/flake.nix b/flake.nix index 2716537..b9293df 100644 --- a/flake.nix +++ b/flake.nix @@ -99,7 +99,7 @@ { login-manager.greetd.enable = desktop == "sway" || desktop == "hyprland"; } inputs.agenix.nixosModules.default - # inputs.hyprland.nixosModules.default + inputs.hyprland.nixosModules.default inputs.dzgui-nix.nixosModules.default { programs.hyprland.enable = (desktop == "hyprland"); } inputs.home-manager.nixosModules.home-manager diff --git a/system/configuration.nix b/system/configuration.nix index 2e3eed5..dc5ac8e 100644 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -99,16 +99,6 @@ # Enable touchpad support (enabled default in most desktopManager). services.xserver.libinput.enable = true; - xdg.portal = { - config.common.default = "*"; - enable = true; - wlr.enable = true; - # Always pick the first monitor, this is fine since I only ever use a single monitor - wlr.settings.screencast.chooser_type = "none"; - # gtk portal needed to make gtk apps happy - extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; - }; - # Define a user account. Don't forget to set a password with ‘passwd’. users.mutableUsers = false; users.users.lelgenio = { diff --git a/system/greetd.nix b/system/greetd.nix index d8d1531..72b82c1 100644 --- a/system/greetd.nix +++ b/system/greetd.nix @@ -35,10 +35,7 @@ in greetd_main_script = pkgs.writeShellScriptBin "main" '' ${pkgs.dbus-sway-environment}/bin/dbus-sway-environment export XDG_CURRENT_DESKTOP=sway GTK_THEME="${theme.gtk_theme}" XCURSOR_THEME="${theme.cursor_theme}" - ${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -c ${{ - sway = "sway"; - hyprland = "Hyprland"; - }.${desktop}} + ${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -c ${desktop} swaymsg exit ''; swayConfig = pkgs.writeText "greetd-sway-config" '' diff --git a/user/chat.nix b/user/chat.nix index 7e27892..34ddd84 100644 --- a/user/chat.nix +++ b/user/chat.nix @@ -7,12 +7,6 @@ ''; }; - wayland.windowManager.hyprland.extraConfig = '' - exec-once = thunderbird - exec-once = webcord - exec-once = telegram-desktop - ''; - home.packages = with pkgs; [ tdesktop webcord diff --git a/user/firefox.nix b/user/firefox.nix index 4699999..ea3c3b5 100644 --- a/user/firefox.nix +++ b/user/firefox.nix @@ -1,12 +1,7 @@ { 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; @@ -97,7 +92,7 @@ in { "devtools.chrome.enabled" = true; "devtools.debugger.remote-enabled" = true; }; - userChrome = lib.mkIf cfg.hideTitleBar '' + userChrome = lib.mkIf (desktop == "sway") '' #titlebar { display: none !important; } #sidebar-header { display: none !important; } ''; diff --git a/user/home.nix b/user/home.nix index 7dfc0ed..f27c0e0 100644 --- a/user/home.nix +++ b/user/home.nix @@ -7,7 +7,7 @@ ./vscode ./fish ./firefox.nix - ./hyprland + ./hyprland.nix ./alacritty.nix ./git.nix ./ssh.nix @@ -36,7 +36,7 @@ ./gnome.nix ./thunar.nix ./xdg-dirs.nix - # inputs.hyprland.homeManagerModules.default + inputs.hyprland.homeManagerModules.default inputs.nix-index-database.hmModules.nix-index ]; @@ -172,13 +172,6 @@ exec nicotine ''; - wayland.windowManager.hyprland.extraConfig = lib.optionalString (osConfig.networking.hostName or "" == "monolith") '' - exec-once = steam - exec-once = obs --startreplaybuffer - exec-once = deluge-gtk - exec-once = nicotine - ''; - systemd.user.services.rm-target = { Unit = { Description = "Remove directories named 'target'"; diff --git a/user/hyprland.nix b/user/hyprland.nix new file mode 100644 index 0000000..992964a --- /dev/null +++ b/user/hyprland.nix @@ -0,0 +1,127 @@ +{ 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 deleted file mode 100644 index 6eaa16f..0000000 --- a/user/hyprland/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ config, pkgs, lib, ... }: -let - inherit (pkgs.uservars) theme; -in -{ - 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") { - services.mako.enable = true; - - wayland.windowManager.hyprland = { - enable = true; - extraConfig = '' - source = /home/lelgenio/projects/nixos-config/user/hyprland/hyprland.conf - ''; - systemd.enable = true; - }; - home.file.".config/hypr/hyprpaper.conf".text = '' - preload = ${theme.background} - wallpaper = ,${theme.background} - ''; - # 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 deleted file mode 100644 index f84aa97..0000000 --- a/user/hyprland/hyprland.conf +++ /dev/null @@ -1,282 +0,0 @@ - -######################################################################################## -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 -monitor=DP-1,1920x1080@144,auto,auto - -# See https://wiki.hyprland.org/Configuring/Keywords/ for more - -# Execute your favorite apps at launch -exec-once = 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 = false - 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 Control, z, exec, swaylock & systemctl suspend - -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 Shift, E, layoutmsg, swapnext -bind = $mainMod Shift, I, layoutmsg, swapprev - - 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 - -# Music mode - -bind=$mainMod,M,submap,music -submap=music - -binde=,Space,exec,mpc toggle - -binde=,U,exec,volumesh -i 10 -binde=,Y,exec,volumesh -d 10 -binde=,O,exec,mpc next -binde=,N,exec,mpc prev -binde=,I,exec,volumesh --mpd -i 10 -binde=,E,exec,volumesh --mpd -d 10 - -binde=,s,exec,pulse_sink - -# use reset to go back to the global submap -bind=,escape,submap,reset - -# will reset the submap, meaning end the current one and return to the global one -submap=reset diff --git a/user/sway/default.nix b/user/sway/default.nix index c79e0d8..0449e30 100644 --- a/user/sway/default.nix +++ b/user/sway/default.nix @@ -98,8 +98,6 @@ in indicator = true; }; - packages.firefox.hideTitleBar = true; - home.packages = with pkgs; [ sway swaybg diff --git a/user/sway/mako.nix b/user/sway/mako.nix index 2089d22..637a2d5 100644 --- a/user/sway/mako.nix +++ b/user/sway/mako.nix @@ -1,12 +1,11 @@ { config, pkgs, lib, ... }: let - inherit (pkgs.uservars) key accent font theme desktop; + inherit (pkgs.uservars) key accent font theme; inherit (theme) color; in { services.mako = { borderSize = 2; - borderRadius = if desktop == "sway" then 0 else 5; padding = "5"; margin = "15"; layer = "overlay"; @@ -49,6 +48,6 @@ in ExecStart = "${pkgs.mako}/bin/mako"; Restart = "on-failure"; }; - Install = { WantedBy = [ "sway-session.target" "hyprland-sessions.target" ]; }; + Install = { WantedBy = [ "sway-session.target" ]; }; }; } diff --git a/user/variables.nix b/user/variables.nix index 1357a63..b8bb262 100644 --- a/user/variables.nix +++ b/user/variables.nix @@ -128,8 +128,8 @@ rec { pass = "disroot.org"; }; - dmenu = "rofi"; - desktop = "hyprland"; + dmenu = "bmenu"; + desktop = "sway"; browser = "firefox"; editor = "kakoune"; email-client = "thunderbird"; diff --git a/user/waybar/default.nix b/user/waybar/default.nix index 3de9b36..a0008c6 100644 --- a/user/waybar/default.nix +++ b/user/waybar/default.nix @@ -1,6 +1,6 @@ { config, osConfig, pkgs, lib, font, ... }: let - inherit (pkgs.uservars) key theme accent font desktop; + inherit (pkgs.uservars) key theme accent font; inherit (theme) color; in { @@ -8,21 +8,13 @@ in programs.waybar = { enable = true; systemd.enable = true; - systemd.target = "${desktop}-session.target"; + systemd.target = "sway-session.target"; settings = [{ layer = "top"; - modules-left = [ - "sway/workspaces" - "sway/mode" - "sway/window" - "hyprland/workspaces" - "hyprland/mode" - "hyprland/window" - ]; + modules-left = [ "sway/workspaces" "sway/mode" "sway/window" ]; modules-center = [ "clock" ]; modules-right = lib.flatten [ "sway/language" - "hyprland/language" "mpd" "custom/playerctl" # "tray" @@ -76,30 +68,6 @@ in }; }; "sway/window" = { max-length = 40; }; - "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" = ""; - "2" = ""; - "3" = "󰅩"; - "4" = ""; - "5" = ""; - "6" = ""; - "7" = "󰇮"; - "8" = ""; - "9" = ""; - "10" = ""; - urgent = ""; - # focused = ""; - default = ""; - }; - }; - "hyprland/window" = { max-length = 40; }; - "hyprland/language" = { format = "{short} {variant}"; }; "tray" = { "spacing" = 7; "icon-size" = 19; @@ -155,6 +123,7 @@ in interval = 1; tooltip = false; }; + "sway/language" = { format = "{short} {variant}"; }; "custom/caffeine" = { format = "{}"; exec = "systemctl --user status swayidle > /dev/null && echo 󰒲 || echo 󰒳"; diff --git a/user/waybar/style.css b/user/waybar/style.css index 0f82fea..f9c0fb1 100644 --- a/user/waybar/style.css +++ b/user/waybar/style.css @@ -20,8 +20,7 @@ window#waybar.solo { background-color: transparent; border: 3px solid transparent; } -#workspaces button.focused, -#workspaces button.active { +#workspaces button.focused { color: @color_txt@; border-top: 3px solid @accent_color@; }