use upstream hyprland and greetd

This commit is contained in:
Tristan 2023-04-17 11:21:33 +01:00
parent 5a782b0056
commit 01331f24da
10 changed files with 310 additions and 319 deletions

104
flake.lock generated
View file

@ -21,7 +21,65 @@
"type": "github"
}
},
"hyprland": {
"inputs": {
"hyprland-protocols": "hyprland-protocols",
"nixpkgs": "nixpkgs",
"wlroots": "wlroots",
"xdph": "xdph"
},
"locked": {
"lastModified": 1681652918,
"narHash": "sha256-ybXmD3OhyMG1Yz31lxT8de7aBi2mQmXmzAZ7q49Uvi4=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "b05ff89c76b2c9454c76daf2120f4ccb076a018d",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1681065697,
"narHash": "sha256-QPzwwlGKX95tl6ZEshboZbEwwAXww6lNLdVYd6T9Mrc=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "4d29e48433270a2af06b8bc711ca1fe5109746cd",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1681557730,
"narHash": "sha256-j2E3639kS3Qop2jQPyqWCdenZNaqIdxfoTvAHnGuAGI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "85b081528b937df4bfcaee80c3541b58f397df8b",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1681303793,
"narHash": "sha256-JEdQHsYuCfRL2PICHlOiH/2ue3DwoxUX7DJ6zZxZXFk=",
@ -39,7 +97,51 @@
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
"hyprland": "hyprland",
"nixpkgs": "nixpkgs_2"
}
},
"wlroots": {
"flake": false,
"locked": {
"host": "gitlab.freedesktop.org",
"lastModified": 1680810405,
"narHash": "sha256-LmI/4Yp/pOOoI4RxLRx9I90NBsiqdRLVOfbATKlgpkg=",
"owner": "wlroots",
"repo": "wlroots",
"rev": "7abda952d0000b72d240fe1d41457b9288f0b6e5",
"type": "gitlab"
},
"original": {
"host": "gitlab.freedesktop.org",
"owner": "wlroots",
"repo": "wlroots",
"type": "gitlab"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1681127512,
"narHash": "sha256-vklOOhBj5W8fii6yN4L2WY5ZeifBmsq3+mJ2wC1Pk9U=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "04f579377a32781ce57c9cf4ba2a5bcb7f53fa97",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
}
},

View file

@ -3,11 +3,16 @@
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager/master";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
home-manager = {
url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland = {
url = "github:hyprwm/Hyprland";
};
};
outputs = { nixpkgs, home-manager, ... }:
outputs = { nixpkgs, home-manager, hyprland, ... }:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
@ -20,7 +25,7 @@
in {
nixosConfigurations = {
zenix = mkConf "zenix" { inherit nixpkgs system user home-manager; };
FCS-Tristan-Nixbook = mkConf "work" { inherit nixpkgs system user home-manager; };
FCS-Tristan-Nixbook = mkConf "work" { inherit nixpkgs system user home-manager hyprland; };
};
};
}

View file

@ -1,10 +1,16 @@
name: { nixpkgs, home-manager, system, user, ... }:
name: { nixpkgs, home-manager, system, user, hyprland, ... }:
nixpkgs.lib.nixosSystem rec {
inherit system;
modules = [
{
nix.settings = {
substituters = ["https://hyprland.cachix.org"];
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
};
}
../system/global/system.nix
../system/${name}/system.nix
../system/${name}/hardware.nix
@ -14,6 +20,7 @@ nixpkgs.lib.nixosSystem rec {
home-manager.users.${user}.imports = [
../system/global/home.nix
../system/${name}/home.nix
hyprland.homeManagerModules.default
];
}
];

View file

@ -67,29 +67,145 @@
{ event = "lock"; command = "${pkgs.swaylock}/bin/swaylock"; }
];
wayland.windowManager.hyprland = {
enable = true;
systemdIntegration = true;
# https://wiki.hyprland.org/Configuring/Variables/
extraConfig = ''
env = GDK_BACKEND,wayland,x11
env = QT_QPA_PLATFORM,wayland;xcb
env = SDL_VIDEODRIVER,wayland
env = CLUTTER_BACKEND,wayland
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = NIXOS_OZONE_WL,1
input {
kb_layout = gb
kb_options = caps:escape
touchpad {
natural_scroll = yes
scroll_factor = 0.5
}
}
bind = SUPER, RETURN, exec, foot
bind = SUPER_SHIFT, Q, killactive,
bind = SUPER_SHIFT, E, exit,
bind = SUPER, d, exec, wofi --show drun
bind = SUPER, Z, exec, swaylock -f
bind = SUPER, M, exec, foot -e ncmpcpp
bind = SUPER, E, exec, foot -e neomutt
bind = SUPER, O, exec, pcmanfm
bind = SUPER, h, movefocus,l
bind = SUPER, l, movefocus,r
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
bind = SUPER, j, layoutmsg,cyclenext
bind = SUPER, k, layoutmsg,cycleprev
bind = SUPER, space, layoutmsg,swapwithmaster
bind = SUPER, F, fullscreen,
bind = SUPER, V, togglefloating,
bind = SUPER_SHIFT, P, exec,~/.local/scripts/bwmenu
bind = SUPER_SHIFT, S, exec,~/.local/scripts/screenshot
bind =,XF86AudioRaiseVolume, exec,amixer sset Master 5%+ && amixer sset Master unmute
bind =,XF86AudioLowerVolume, exec,amixer sset Master 5%-
bind =,XF86AudioPlay, exec,~/.local/scripts/play-pause
bind =,XF86AudioNext, exec,playerctl next
bind =,XF86AudioPrev, exec,playerctl previous
bind =,XF86MonBrightnessUp, exec,~/.local/scripts/brightness-up
bind =,XF86MonBrightnessDown, exec,~/.local/scripts/brightness-down
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 = SUPER_SHIFT,1,movetoworkspace,1
bind = SUPER_SHIFT,2,movetoworkspace,2
bind = SUPER_SHIFT,3,movetoworkspace,3
bind = SUPER_SHIFT,4,movetoworkspace,4
bind = SUPER_SHIFT,5,movetoworkspace,5
bind = SUPER_SHIFT,6,movetoworkspace,6
bind = SUPER_SHIFT,7,movetoworkspace,7
bind = SUPER_SHIFT,8,movetoworkspace,8
bind = SUPER_SHIFT,9,movetoworkspace,9
bind = SUPER_SHIFT,0,movetoworkspace,10
gestures {
workspace_swipe = yes
}
decoration {
rounding = 5
blur = 0
}
bezier=overshot, 0.05, 0.9, 0.1, 1.1
animations {
enabled = 1
animation = windows, 1, 5, default
animation = border, 1, 5, default
animation = fade, 1, 10,default
animation = workspaces, 1, 3, overshot
}
general {
resize_on_border = yes
layout = master
}
'';
};
programs.waybar.enable = true;
programs.waybar.settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
height = 36;
modules-left = [ "wlr/taskbar" "hyprland/window" ];
modules-right = [ "mpd" "pulseaudio" "clock" "tray" ];
modules-right = [ "mpris" "wireplumber" "clock" "tray" ];
clock = {
format = "📅 {:%a %b-%d %I:%M %p}";
};
pulseaudio = {
wireplumber = {
format-muted = "🔇 {volume}%";
format = "{icon} {volume}";
format-icons.default = ["🔈" "🔉" "🔊"];
on-click = "pavucontrol";
};
mpd = {
server = "192.168.1.2";
on-click = "foot -e ncmpcpp";
mpris = {
format= "{player_icon} {title}";
format-paused= "{status_icon} {title}";
player-icons = {
default = "";
mpv = "🎵";
};
status-icons = {
paused = "";
};
on-click = "~/.local/scripts/play-pause";
};
};
};
programs.waybar.systemd = {
enable = true;
target = "hyprland-session.target";
};
services.udiskie = {
enable = true;
@ -123,6 +239,8 @@
bindings = [
{ key = "j"; command = "scroll_down"; }
{ key = "k"; command = "scroll_up"; }
{ key = "l"; command = "select_item"; }
{ key = "k"; command = "scroll_up"; }
{ key = "J"; command = [ "select_item" "scroll_down" ]; }
{ key = "K"; command = [ "select_item" "scroll_up" ]; }
];
@ -192,8 +310,8 @@
};
};
services.nextcloud-client.enable = true;
services.nextcloud-client.startInBackground = true;
# services.nextcloud-client.enable = true;
# services.nextcloud-client.startInBackground = true;
programs.rbw = {
enable = true;

View file

@ -40,18 +40,17 @@
i18n.defaultLocale = "en_GB.UTF-8";
# Configure graphical stuff
services.xserver = {
enable = true;
layout = "gb";
libinput.enable = true;
services.xserver.layout = "gb";
# the only display manager that works?
displayManager.gdm.enable = true;
displayManager.autoLogin = {
services.greetd = {
enable = true;
settings = rec {
initial_session = {
command = "Hyprland";
user = "tristan";
};
default_session = initial_session;
};
};
qt.enable = true;
@ -78,7 +77,7 @@
};
environment.shellAliases = {
code = "codium --ozone-platform=wayland";
code = "codium";
};
environment.systemPackages = with pkgs; [

View file

@ -1,125 +0,0 @@
exec-once= ~/.local/scripts/autostart
monitor=,preferred,auto,1.2
input {
kb_file=
kb_layout=gb
kb_variant=dvorak
kb_model=
kb_options=caps:escape
kb_rules=
follow_mouse=1
touchpad {
natural_scroll=yes
}
sensitivity=0
accel_profile=flat
}
general {
gaps_in=5
gaps_out=20
border_size=2
col.active_border=0x66ee1111
col.inactive_border=0x66333333
apply_sens_to_raw=0
layout = master
}
decoration {
rounding=5
blur=0
blur_size=3 # minimum 1
blur_passes=1 # minimum 1
blur_new_optimizations=1
}
bezier=overshot, 0.05, 0.9, 0.1, 1.1
animations {
enabled=1
animation=windows,1,5,default
animation=border,1,5,default
animation=fade,1,10,default
animation=workspaces,1,3,overshot
}
dwindle {
pseudotile=0 # enable pseudotiling on dwindle
}
gestures {
workspace_swipe=yes
}
bindm=SUPER,mouse:272,movewindow
bindm=SUPER,mouse:273,resizewindow
bind=SUPER,RETURN,exec,foot
bind=SUPER_SHIFT,Q,killactive,
bind=SUPER,M,exec,foot -e ncmpcpp
bind=SUPER,E,exec,foot -e neomutt
bind=SUPER,O,exec,pcmanfm
bind=SUPER,y,exec,foot -e ytui
bind=SUPER,Z,exec,swaylock -f
bind=SUPER,T,exec,notify-send "$(date)"
bind=SUPER_SHIFT,S,exec,~/.local/scripts/screenshot
bind=SUPERCTRL_SHIFT,S,exec,qrcode.sh
bind=SUPER,p,exec,hyprpicker | wl-copy; wl-paste | xargs notify-send Copied
bind=SUPER,slash,exec,brave
bind=SUPER,V,togglefloating,
bind=SUPER,F,fullscreen,
bind=SUPER,d,exec,wofi --show drun
bind=SUPER_SHIFT,P,exec,~/.local/scripts/bwmenu
bind=SUPER,apostrophe,exec,notify-send -i mpv "$(playerctl metadata --format '{{title}}')" "$(playerctl metadata --format '{{album}}')" -t 3000
bind=SUPER_SHIFT,E,exit,
bind=,XF86AudioRaiseVolume,exec,amixer sset Master 5%+ && amixer sset Master unmute
bind=,XF86AudioLowerVolume,exec,amixer sset Master 5%-
bind=,XF86AudioPlay,exec,~/.local/scripts/play-pause
bind=,XF86AudioNext,exec,playerctl next
bind=,XF86AudioPrev,exec,playerctl previous
bind=,XF86MonBrightnessUp,exec,~/.local/scripts/brightness-up
bind=,XF86MonBrightnessDown,exec,~/.local/scripts/brightness-down
bind=SUPER,h,movefocus,l
bind=SUPER,l,movefocus,r
bind=SUPER,j,layoutmsg,cyclenext
bind=SUPER,k,layoutmsg,cycleprev
bind=SUPER,space,layoutmsg,swapwithmaster
master {
new_is_master= true
new_on_top= true
}
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=SUPER_SHIFT,1,movetoworkspace,1
bind=SUPER_SHIFT,2,movetoworkspace,2
bind=SUPER_SHIFT,3,movetoworkspace,3
bind=SUPER_SHIFT,4,movetoworkspace,4
bind=SUPER_SHIFT,5,movetoworkspace,5
bind=SUPER_SHIFT,6,movetoworkspace,6
bind=SUPER_SHIFT,7,movetoworkspace,7
bind=SUPER_SHIFT,8,movetoworkspace,8
bind=SUPER_SHIFT,9,movetoworkspace,9
bind=SUPER_SHIFT,0,movetoworkspace,10
bind=SUPER,mouse_down,workspace,e+1
bind=SUPER,mouse_up,workspace,e-1

View file

@ -45,4 +45,15 @@
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.opengl = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver # LIBVA_DRIVER_NAME=iHD
vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
vaapiVdpau
libvdpau-va-gl
];
};
}

View file

@ -13,48 +13,40 @@
programs.git = {
enable = true;
userName = "tristan";
userEmail = "tristan@tristans.cloud";
userName = "Tristan Beedell";
userEmail = "tristan.beedell@cryoserver.com";
aliases = {
graph = "log --oneline --all --graph";
amend = "commit --amend --no-edit";
};
};
accounts.email.accounts."tristan@tristans.cloud" = {
notmuch.enable = true;
neomutt.enable = true;
mbsync.enable = true;
mbsync.create = "maildir";
userName = "tristan@tristans.cloud";
realName = "Tristan";
address = "tristan@tristans.cloud";
accounts.email.accounts."tristan.beedell@cryoserver.com" = {
userName = "tristan.beedell@cryoserver.com";
realName = "Tristan Beedell";
address = "tristan.beedell@cryoserver.com";
primary = true;
passwordCommand = "rbw get privateemail";
smtp = {
host = "mail.privateemail.com";
port = 465;
tls.enable = true;
};
imap = {
host = "mail.privateemail.com";
port = 993;
tls.enable = true;
programs.waybar.settings.mainBar = {
modules-right = ["battery"];
battery = {
format = "{icon} {capacity}%";
format-icons = ["🤏" "🪫" "🔋"];
states = {
warning = 30;
critical = 15;
};
};
};
programs.notmuch.enable = true;
programs.neomutt = {
enable = true;
vimKeys = true;
sort = "reverse-date";
sidebar.enable = true;
};
programs.mbsync.enable = true;
services.mbsync.enable = true;
home.file.".config/hypr/hyprland.conf" = {
source = ./config/hypr.conf;
wayland.windowManager.hyprland = {
extraConfig = ''
monitor = ,preferred,auto, 1.2
input {
kb_variant = dvorak
}
'';
};
}

View file

@ -1,137 +0,0 @@
exec-once= ~/.local/scripts/autostart
monitor=,preferred,auto,1
monitor=DP-1,1920x1080@144,0x0,1
monitor=HDMI-A-1,1920x1080@60,1920x0,1
input {
kb_file=
kb_layout=gb
kb_variant=
kb_model=
kb_options=caps:escape
kb_rules=
follow_mouse=1
touchpad {
natural_scroll=yes
}
sensitivity=0
accel_profile=flat
}
general {
gaps_in=5
gaps_out=20
border_size=2
col.active_border=0x66ee1111
col.inactive_border=0x66333333
apply_sens_to_raw=0
layout = master
}
decoration {
rounding=5
blur=0
blur_size=3 # minimum 1
blur_passes=1 # minimum 1
blur_new_optimizations=1
}
bezier=overshot, 0.05, 0.9, 0.1, 1.1
animations {
enabled=1
animation=windows,1,5,default
animation=border,1,5,default
animation=fade,1,10,default
animation=workspaces,1,3,overshot
}
dwindle {
pseudotile=0 # enable pseudotiling on dwindle
}
gestures {
workspace_swipe=yes
}
bindm=SUPER,mouse:272,movewindow
bindm=SUPER,mouse:273,resizewindow
bind=SUPER,RETURN,exec,foot
bind=SUPER_SHIFT,X,killactive,
bind=SUPER,M,exec,foot -e ncmpcpp
bind=SUPER,E,exec,foot -e neomutt
bind=SUPER,O,exec,pcmanfm
bind=SUPER,y,exec,foot -e ytui
bind=SUPER,Z,exec,swaylock -f
bind=SUPER,T,exec,notify-send "$(date)"
bind=SUPER_SHIFT,S,exec,~/.local/scripts/screenshot
bind=SUPERCTRL_SHIFT,S,exec,qrcode.sh
bind=SUPER,p,exec,hyprpicker | wl-copy; wl-paste | xargs notify-send Copied
bind=SUPER,slash,exec,brave
bind=SUPER,V,togglefloating,
bind=SUPER,F,fullscreen,
bind=SUPER,d,exec,wofi --show drun
bind=SUPER_SHIFT,P,exec,~/.local/scripts/bwmenu
bind=SUPER,apostrophe,exec,notify-send -i mpv "$(playerctl metadata --format '{{title}}')" "$(playerctl metadata --format '{{album}}')" -t 3000
bind=SUPER_SHIFT,E,exit,
bind=,XF86AudioRaiseVolume,exec,amixer -D pulse sset Master 5%+ && amixer sset Master unmute
bind=,XF86AudioLowerVolume,exec,amixer -D pulse sset Master 5%-
bind=,XF86AudioPlay,exec,~/.local/scripts/play-pause
bind=,XF86AudioNext,exec,playerctl next
bind=,XF86AudioPrev,exec,playerctl previous
bind=SUPER,h,movefocus,l
bind=SUPER,l,movefocus,r
bind=SUPER,j,layoutmsg,cyclenext
bind=SUPER,k,layoutmsg,cycleprev
bind=SUPER,space,layoutmsg,swapwithmaster
master {
new_is_master= true
new_on_top= true
}
bind=SUPER,1,workspace,1
wsbind=1,DP-1
workspace = DP-1, 6
bind=SUPER,2,workspace,2
wsbind=2,DP-1
bind=SUPER,3,workspace,3
wsbind=3,DP-1
bind=SUPER,4,workspace,4
wsbind=4,DP-1
bind=SUPER,5,workspace,5
wsbind=5,DP-1
bind=SUPER,6,workspace,6
wsbind=6,HDMI-A-1
workspace = HDMI-A-1, 6
bind=SUPER,7,workspace,7
wsbind=7,HDMI-A-1
bind=SUPER,8,workspace,8
wsbind=8,HDMI-A-1
bind=SUPER,9,workspace,9
wsbind=9,HDMI-A-1
bind=SUPER,0,workspace,10
wsbind=10,HDMI-A-1
bind=SUPER_SHIFT,1,movetoworkspace,1
bind=SUPER_SHIFT,2,movetoworkspace,2
bind=SUPER_SHIFT,3,movetoworkspace,3
bind=SUPER_SHIFT,4,movetoworkspace,4
bind=SUPER_SHIFT,5,movetoworkspace,5
bind=SUPER_SHIFT,6,movetoworkspace,6
bind=SUPER_SHIFT,7,movetoworkspace,7
bind=SUPER_SHIFT,8,movetoworkspace,8
bind=SUPER_SHIFT,9,movetoworkspace,9
bind=SUPER_SHIFT,0,movetoworkspace,10
bind=SUPER,mouse_down,workspace,e+1
bind=SUPER,mouse_up,workspace,e-1

View file

@ -53,4 +53,23 @@
source = ./config/hypr.conf;
};
wayland.windowManager.hyprland = {
extraConfig = ''
monitor = DP-1, 1920x1080@144,0x0, 1
monitor = HDMI-A-1, 1920x1080@60, 1920x0,1
workspace = DP-1, 1
workspace = HDMI-A-1, 6
wsbind = 1, DP-1
wsbind = 2, DP-1
wsbind = 3, DP-1
wsbind = 4, DP-1
wsbind = 5, DP-1
wsbind = 6, HDMI-A-1
wsbind = 7, HDMI-A-1
wsbind = 8, HDMI-A-1
wsbind = 9, HDMI-A-1
wsbind = 10,HDMI-A-1
'';
};
}