hyprland: minimal config
This commit is contained in:
parent
7b2f97155f
commit
6ad0d3685e
|
@ -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; }
|
||||
'';
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
./vscode
|
||||
./fish
|
||||
./firefox.nix
|
||||
./hyprland.nix
|
||||
./hyprland
|
||||
./alacritty.nix
|
||||
./git.nix
|
||||
./ssh.nix
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
54
user/hyprland/default.nix
Normal file
54
user/hyprland/default.nix
Normal file
|
@ -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" ];
|
||||
})
|
||||
];
|
||||
};
|
||||
}
|
254
user/hyprland/hyprland.conf
Normal file
254
user/hyprland/hyprland.conf
Normal file
|
@ -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
|
|
@ -98,6 +98,8 @@ in
|
|||
indicator = true;
|
||||
};
|
||||
|
||||
packages.firefox.hideTitleBar = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
sway
|
||||
swaybg
|
||||
|
|
|
@ -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" = "";
|
||||
|
|
|
@ -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@;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue