More hyprland setup, add waybar

This commit is contained in:
Julian Mutter 2024-06-13 16:30:12 +02:00
parent a0fe904d6c
commit 084100c557
5 changed files with 360 additions and 7 deletions

View File

@ -74,6 +74,7 @@
## My scripts
pkgs.frajul.deploy-to-pianopi
pkgs.frajul.edit-config
pkgs.frajul.open-messaging
]
++ lib.lists.concatMap (packages-list-file: import packages-list-file { inherit pkgs; }) [
./fonts.nix

View File

@ -37,11 +37,59 @@ in
home.packages = with pkgs; [
wofi
xfce.thunar
wlogout
waybar
hyprlock
hyprpicker
hyprcursor
];
programs.waybar = {
enable = true;
systemd.enable = true;
style = builtins.readFile ./style-dracula.css;
settings = {
mainBar = {
layer = "top";
position = "bottom";
height = 30;
output = [
"eDP-1"
"HDMI-A-1"
];
modules-left = [
"hyprland/workspaces"
"hyprland/submap"
];
modules-center = [ "hyprland/window" ];
modules-right = [
# "mpd"
# "idle_inhibitor"
"pulseaudio"
# "network"
"power-profiles-daemon"
"cpu"
"memory"
# "temperature"
# "backlight"
# "keyboard-state"
"battery"
# "battery#bat2"
"clock"
"tray"
];
# "sway/workspaces" = {
# disable-scroll = true;
# all-outputs = true;
# };
};
};
};
programs.wlogout.enable = true; # can be configured
# services.hypridle.enable = true; # can be configured
services.network-manager-applet.enable = true;
wayland.windowManager.hyprland = {
# Whether to enable Hyprland wayland compositor
enable = true;
@ -62,10 +110,8 @@ in
# Autostart
exec-once = [
"nm-applet"
"waybar"
# "nm-applet"
"firefox"
"hyprlock"
];
# Environment Variables
@ -121,7 +167,14 @@ in
};
# Window rules
windowrulev2 = "suppressevent maximize, class:.*"; # You'll probably like this.
windowrulev2 = [
"suppressevent maximize, class:.*"
"workspace 1, class:firefox"
"workspace 9, class:nheko"
"workspace 9, class:org.telegram.desktop"
"workspace 10, class:thunderbird"
"float, class:qalculate-gtk"
];
# Workspace rules
workspace = [
@ -158,6 +211,7 @@ in
"$mod, E, exec, thunar"
"$mod, Return, exec, alacritty"
"$mod, B, exec, firefox"
"$mod, C, exec, qalculate-gtk"
# other commands
"$mod, Escape, exec, wlogout -p layer-shell"

View File

@ -0,0 +1,265 @@
/* Keyframes */
@keyframes blink-critical {
to {
/*color: @white;*/
background-color: @critical;
}
}
/* Styles */
/* Colors (gruvbox) */
@define-color black #282828;
@define-color red #cc241d;
@define-color green #98971a;
@define-color yellow #d79921;
@define-color blue #458588;
@define-color purple #b16286;
@define-color aqua #689d6a;
@define-color gray #a89984;
@define-color brgray #928374;
@define-color brred #fb4934;
@define-color brgreen #b8bb26;
@define-color bryellow #fabd2f;
@define-color brblue #83a598;
@define-color brpurple #d3869b;
@define-color braqua #8ec07c;
@define-color white #ebdbb2;
@define-color bg2 #504945;
@define-color warning @bryellow;
@define-color critical @red;
@define-color mode @black;
@define-color unfocused @bg2;
@define-color focused @braqua;
@define-color inactive @purple;
@define-color sound @brpurple;
@define-color network @purple;
@define-color memory @braqua;
@define-color cpu @green;
@define-color temp @brgreen;
@define-color layout @bryellow;
@define-color battery @aqua;
@define-color date @black;
@define-color time @white;
/* Reset all styles */
* {
border: none;
border-radius: 0;
min-height: 0;
margin: 0;
padding: 0;
box-shadow: none;
text-shadow: none;
icon-shadow: none;
}
/* The whole bar */
#waybar {
background: rgba(40, 40, 40, 0.8784313725); /* #282828e0 */
color: @white;
font-family: JetBrains Mono, Siji;
font-size: 10pt;
/*font-weight: bold;*/
}
/* Each module */
#battery,
#clock,
#cpu,
#language,
#memory,
#mode,
#network,
#pulseaudio,
#temperature,
#tray,
#backlight,
#idle_inhibitor,
#disk,
#user,
#mpris {
padding-left: 8pt;
padding-right: 8pt;
}
/* Each critical module */
#mode,
#memory.critical,
#cpu.critical,
#temperature.critical,
#battery.critical.discharging {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
animation-name: blink-critical;
animation-duration: 1s;
}
/* Each warning */
#network.disconnected,
#memory.warning,
#cpu.warning,
#temperature.warning,
#battery.warning.discharging {
color: @warning;
}
/* And now modules themselves in their respective order */
/* Current sway mode (resize etc) */
#mode {
color: @white;
background: @mode;
}
/* Workspaces stuff */
#workspaces button {
/*font-weight: bold;*/
padding-left: 2pt;
padding-right: 2pt;
color: @white;
background: @unfocused;
}
/* Inactive (on unfocused output) */
#workspaces button.visible {
color: @white;
background: @inactive;
}
/* Active (on focused output) */
#workspaces button.focused {
color: @black;
background: @focused;
}
/* Contains an urgent window */
#workspaces button.urgent {
color: @black;
background: @warning;
}
/* Style when cursor is on the button */
#workspaces button:hover {
background: @black;
color: @white;
}
#window {
margin-right: 35pt;
margin-left: 35pt;
}
#pulseaudio {
background: @sound;
color: @black;
}
#network {
background: @network;
color: @white;
}
#memory {
background: @memory;
color: @black;
}
#cpu {
background: @cpu;
color: @white;
}
#temperature {
background: @temp;
color: @black;
}
#language {
background: @layout;
color: @black;
}
#battery {
background: @battery;
color: @white;
}
#tray {
background: @date;
}
#clock.date {
background: @date;
color: @white;
}
#clock.time {
background: @time;
color: @black;
}
#custom-arrow1 {
font-size: 11pt;
color: @time;
background: @date;
}
#custom-arrow2 {
font-size: 11pt;
color: @date;
background: @layout;
}
#custom-arrow3 {
font-size: 11pt;
color: @layout;
background: @battery;
}
#custom-arrow4 {
font-size: 11pt;
color: @battery;
background: @temp;
}
#custom-arrow5 {
font-size: 11pt;
color: @temp;
background: @cpu;
}
#custom-arrow6 {
font-size: 11pt;
color: @cpu;
background: @memory;
}
#custom-arrow7 {
font-size: 11pt;
color: @memory;
background: @network;
}
#custom-arrow8 {
font-size: 11pt;
color: @network;
background: @sound;
}
#custom-arrow9 {
font-size: 11pt;
color: @sound;
background: transparent;
}
#custom-arrow10 {
font-size: 11pt;
color: @unfocused;
background: transparent;
}

View File

@ -0,0 +1,31 @@
{
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
# as well as the libraries available from your flake's inputs.
lib,
# You also have access to your flake's inputs.
inputs,
# All other arguments come from NixPkgs. You can use `pkgs` to pull packages or helpers
# programmatically or you may add the named attributes as arguments here.
pkgs,
stdenv,
...
}:
pkgs.writeShellApplication {
name = "open-messaging";
runtimeInputs = with pkgs; [
nheko
telegram-desktop
thunderbird
];
text = ''
nheko &
sleep 0.1
telegram-desktop &
sleep 0.1
thunderbird &
'';
}

View File

@ -104,7 +104,7 @@
# Enable the XFCE Desktop Environment.
services.xserver.displayManager.gdm.enable = true;
# services.displayManager.sddm.wayland.enable = true;
# services.displayManager.sddm.wayland.enable = true;
# services.xserver.desktopManager = {
# xterm.enable = false;
# xfce = {
@ -135,6 +135,8 @@
hardware.pulseaudio.enable = false;
security.polkit.enable = true;
security.pam.services.hyprlock = { };
# Sound
security.rtkit.enable = true;
services.pipewire = {