made wayland specialisation and configured waybar

This commit is contained in:
Aria Nolan 2023-10-28 23:17:57 -04:00
parent 0ffd4938dc
commit a7ac762a9f
13 changed files with 732 additions and 23 deletions

View file

@ -57,10 +57,21 @@
extraSpecialArgs = {inherit inputs;}; # Pass flake inputs to our config extraSpecialArgs = {inherit inputs;}; # Pass flake inputs to our config
modules = [ modules = [
./users/tacocat/home.nix ./users/tacocat/home.nix
./users/tacocat/wayland
]; ];
}; };
# homeConfigurations."tacocat-X11" = inputs.home-manager.lib.homeManagerConfiguration {
# inherit pkgs;
# extraSpecialArgs = {inherit inputs;}; # Pass flake inputs to our config
# modules = [
# ./users/tacocat/home.nix
# ./users/tacocat/X11
# ];
# };
#outputs home-manager activation package for use on non-NixOS, i think? #outputs home-manager activation package for use on non-NixOS, i think?
packages.${system}."tacocat" = self.homeConfigurations."tacocat".activationPackage; packages.${system}."tacocat" = self.homeConfigurations."tacocat".activationPackage;
# packages.${system}."tacocat-X11" = self.homeConfigurations."tacocat-X11".activationPackage;
}; };
} }

View file

@ -10,7 +10,6 @@
imports = [ imports = [
# Include the results of the hardware scan. # Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
./river.nix
./secrets ./secrets
]; ];
@ -19,6 +18,7 @@
efi.efiSysMountPoint = "/boot/efi"; efi.efiSysMountPoint = "/boot/efi";
grub = { grub = {
efiSupport = true; efiSupport = true;
configurationLimit = 10;
device = "nodev"; device = "nodev";
extraEntriesBeforeNixOS = true; # still primarily using void extraEntriesBeforeNixOS = true; # still primarily using void
extraEntries = '' extraEntries = ''
@ -31,6 +31,13 @@
}; };
nix.settings.experimental-features = ["nix-command" "flakes"]; nix.settings.experimental-features = ["nix-command" "flakes"];
nix.settings.auto-optimise-store = true;
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 1w";
};
networking.hostName = "JWST"; networking.hostName = "JWST";
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
@ -78,10 +85,22 @@
]; ];
}; };
programs.river.enable = true;
programs.river.extraPackages = with pkgs; [
swaylock
swayidle
dunst
wlsunset
nm-applet
grim
slurp
waybar
wbg
];
environment = { environment = {
systemPackages = with pkgs; [ systemPackages = with pkgs; [
vim vim
wget
]; ];
defaultPackages = with pkgs; [ defaultPackages = with pkgs; [
perl perl

View file

@ -29,6 +29,8 @@
bat bat
comic-mono comic-mono
maple-mono maple-mono
jetbrains-mono
(nerdfonts.override {fonts = ["FiraMono"]; } )
pandoc pandoc
jdk20 jdk20
pdftk pdftk
@ -38,19 +40,14 @@
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
xdg.configFile."river" = { news.display = "silent";
source = ./river;
executable = true;
recursive = true;
};
xdg.configFile."river/background.jpg".source = ./background.jpg;
imports = [ imports = [
./programs ./programs
./shell ./shell
./helix ./helix
./emacs ./emacs
./wayland
]; ];
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.

View file

@ -1,14 +0,0 @@
#!/usr/bin/env bash
# /usr/libexec/xdg-desktop-portal -r &
# /usr/libexec/xdg-desktop-portal-wlr -r &
# pipewire &
wlsunset -S 8:00 -s 23:30 &
waybar -c ~/.config/waybar/river/config -s ~/.config/waybar/river/style.css &
nm-applet --indicator &
dunst &
swayidle -w timeout 600 'swaylock -f -c 14171d' &
# for void linux
~/.config/river/void-setup

View file

@ -2,6 +2,7 @@
programs.bash = { programs.bash = {
enable = true; enable = true;
enableCompletion = true; enableCompletion = true;
enableVteIntegration = true;
bashrcExtra = '' bashrcExtra = ''
PS1='[\u@\h \W]\$ ' PS1='[\u@\h \W]\$ '

View file

@ -7,6 +7,7 @@
enable = true; enable = true;
enableAutosuggestions = true; enableAutosuggestions = true;
enableCompletion = true; enableCompletion = true;
enableVteIntegration = true;
syntaxHighlighting.enable = true; syntaxHighlighting.enable = true;
autocd = true; autocd = true;
defaultKeymap = null; defaultKeymap = null;

View file

@ -0,0 +1,25 @@
{pkgs, ...}:
{
specialisation.wayland.configuration = {
imports = [
./waybar
];
};
xdg.configFile."river" = {
source = ./river;
executable = true;
recursive = true;
};
xdg.configFile."river/background.jpg".source = ../background.jpg;
home.packages = with pkgs; [
wl-clipboard
swaylock
swayidle
wbg
];
programs.rofi.package = pkgs.rofi-wayland-unwrapped;
}

View file

@ -0,0 +1,16 @@
#!/usr/bin/env bash
wlsunset -S 8:00 -s 23:30 &
waybar &
nm-applet --indicator &
dunst &
# void linux specific setup
if test -f ~/.config/river/void-setup; then
exec ~/.config/river/void-setup
exit
fi
exec swayidle -w \
timeout 600 'swaylock -f -c 14171d' \
before-sleep 'swaylock -f -c 14171d'

View file

@ -6,5 +6,6 @@ killall nm-applet
killall dunst killall dunst
killall swayidle killall swayidle
killall wbg killall wbg
killall void-setup
~/.config/river/init ~/.config/river/init

View file

@ -0,0 +1,194 @@
{
"layer": "top",
"position": "top",
"modules-left": [
"river/mode",
"river/tags",
"custom/arrow10",
"river/window"
],
"modules-right": [
"custom/arrow9",
"pulseaudio",
"custom/arrow8",
"network",
"custom/arrow7",
"memory",
"custom/arrow6",
"cpu",
"custom/arrow5",
"temperature",
"custom/arrow4",
"battery",
"custom/arrow2",
"tray",
"clock#date",
"custom/arrow1",
"clock#time"
],
// Modules
"battery": {
"interval": 10,
"states": {
"warning": 30,
"critical": 15
},
"format-time": "{H}:{M:02}",
"format": "{icon} {capacity}% ({time})",
"format-charging": " {capacity}% ({time})",
"format-charging-full": " {capacity}%",
"format-full": "{icon} {capacity}%",
"format-alt": "{icon} {power}W",
"format-icons": [
"",
"",
"",
"",
""
],
"tooltip": false
},
"clock#time": {
"interval": 10,
"format": "{:%H:%M}",
"tooltip": false
},
"clock#date": {
"interval": 20,
"format": "{:%e %b %Y}",
"tooltip": false
//"tooltip-format": "{:%e %B %Y}"
},
"cpu": {
"interval": 5,
"tooltip": false,
"format": " {usage}%",
"format-alt": " {load}",
"states": {
"warning": 70,
"critical": 90
}
},
"memory": {
"interval": 5,
"format": "RAM: {used:0.1f}G/{total:0.1f}G",
"states": {
"warning": 70,
"critical": 90
},
"tooltip": false
},
"network": {
"interval": 5,
"format-wifi": " {essid} ({signalStrength}%)",
"format-ethernet": " {ifname}",
"format-disconnected": "No connection",
"format-alt": " {ipaddr}/{cidr}",
"tooltip": false
},
"river/mode": {
"format": "{}",
},
"river/window": {
"format": "{}",
"max-length": 79,
"tooltip": false,
},
"river/tags": {
"num-tags": 9,
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-bluetooth": "{icon} {volume}%",
"format-muted": "",
"format-icons": {
"default": ["", ""]
},
"scroll-step": 1,
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
"tooltip": false
},
"temperature": {
"critical-threshold": 90,
"interval": 5,
"thermal-zone": 1,
"format": "{icon} {temperatureC}°",
"format-icons": [
"",
"",
"",
"",
""
],
"tooltip": false
},
"tray": {
"icon-size": 18,
"spacing": 10
},
"custom/arrow1": {
"format": "",
"tooltip": false
},
"custom/arrow2": {
"format": "",
"tooltip": false
},
"custom/arrow3": {
"format": "",
"tooltip": false
},
"custom/arrow4": {
"format": "",
"tooltip": false
},
"custom/arrow5": {
"format": "",
"tooltip": false
},
"custom/arrow6": {
"format": "",
"tooltip": false
},
"custom/arrow7": {
"format": "",
"tooltip": false
},
"custom/arrow8": {
"format": "",
"tooltip": false
},
"custom/arrow9": {
"format": "",
"tooltip": false
},
"custom/arrow10": {
"format": "",
"tooltip": false
}
}

View file

@ -0,0 +1,162 @@
{
programs.waybar = {
enable = true;
style = ./style.css;
settings = {
mainBar = {
layer = "top";
position = "top";
modules-left = [
"river/mode"
"river/tags"
"custom/arrow10"
"river/window"
];
modules-right = [
"custom/arrow9"
"pulseaudio"
"custom/arrow8"
"network"
"custom/arrow7"
"memory"
"custom/arrow6"
"cpu"
"custom/arrow5"
"temperature"
"custom/arrow4"
"battery"
"custom/arrow2"
"tray"
"clock#date"
"custom/arrow1"
"clock#time"
];
"pulseaudio" = {
format = "{icon} {volume}%";
format-bluetooth = "{icon} {volume}%";
format-muted = "";
format-icons.default = [ "" "" ];
scroll-step = 1;
tooltip = false;
};
"network" = {
interval = 5;
format-wifi = " {essid} ({signalStrength}%)";
format-ethernet = " {ifname}";
format-disconnected = "No connection";
format-alt = " {ipaddr}/{cidr}";
tooltip = false;
};
"river/mode" = {
format = "{}";
};
"river/window" = {
format = "{}";
max-length = 79;
tooltip = false;
};
"river/tags" = {
num-tags = 9;
};
"temperature" = {
critical-threshold = 90;
interval = 5;
thermal-zone = 1;
format = "{icon} {temperatureC}°";
format-icons = [
""
""
""
""
""
];
tooltip = false;
};
"memory" = {
interval = 5;
format = "RAM: {used:0.1f}G/{total:0.1f}G";
states = {
warning = 70;
critical = 90;
};
tooltip = false;
};
"cpu" = {
interval = 5;
tooltip = false;
format = " {usage}%";
format-alt = " {load}";
states = {
warning = 70;
critical = 90;
};
};
"battery" = {
interval = 10;
states = {
warning = 25;
critical = 15;
};
format-time = "{H}:{M:02}";
format = "{icon} {capacity}% ({time})";
format-charging = " {capacity}% ({time})";
format-charging-full = " {capacity}%";
format-full = "{icon} {capacity}%";
format-alt = "{icon} {power}W";
format-icons = [
""
""
""
""
""
];
tooltip = false;
};
"tray" = {
icon-size = 18;
spacing = 10;
};
"custom/arrow1" = {
format = "";
tooltip = false;
};
"custom/arrow2" = {
format = "";
tooltip = false;
};
"custom/arrow3" = {
format = "";
tooltip = false;
};
"custom/arrow4" = {
format = "";
tooltip = false;
};
"custom/arrow5" = {
format = "";
tooltip = false;
};
"custom/arrow6" = {
format = "";
tooltip = false;
};
"custom/arrow7" = {
format = "";
tooltip = false;
};
"custom/arrow8" = {
format = "";
tooltip = false;
};
"custom/arrow9" = {
format = "";
tooltip = false;
};
"custom/arrow10" = {
format = "";
tooltip = false;
};
};
};
};
}

View file

@ -0,0 +1,296 @@
/* Keyframes */
@keyframes blink-critical {
to {
/*color: @white;*/
background-color: @critical;
}
}
/* Styles */
/* Colors (gruvbox) */
/* @define-color black #282828; */
@define-color black #393552;
/* @define-color red #cc241d; */
@define-color red #EB6F92;
@define-color green #98971a;
@define-color yellow #d79921;
/* @define-color blue #458588; */
@define-color blue #9CCFD8;
/* @define-color purple #b16286; */
@define-color purple #C4A7E7;
@define-color aqua #689d6a;
@define-color gray #a89984;
@define-color brgray #928374;
@define-color bfred #fb4934;
@define-color brred #EA9A97;
@define-color brgreen #b8bb26;
/* @define-color bryellow #fabd2f; */
@define-color bryellow #F6C177;
/* @define-color brblue #83a598; */
@define-color brblue #85ACB0;
@define-color brpurple #d3869b;
@define-color braqua #8ec07c;
@define-color white #ebdbb2;
/* @define-color bg2 #504945; */
@define-color bg2 #6E6A86;
@define-color warning @bfred;
@define-color critical @bfred;
@define-color mode @black;
@define-color unfocused @bg2;
@define-color focused @red;
@define-color inactive @blue;
@define-color sound @purple;
@define-color network @blue;
@define-color memory @brred;
@define-color cpu @brblue;
@define-color temp @bryellow;
@define-color layout @bryellow;
@define-color battery @braqua;
@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;
font-size: 10pt;
/*font-weight: bold;*/
}
/* Each module */
#mode,
#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 */
#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: 4pt;
padding-right: 4pt;
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;
}
#tags button {
/*font-weight: bold;*/
padding-left: 4pt;
padding-right: 4pt;
color: @white;
background: @unfocused;
}
#tags button.occupied {
color: @black;
background: @inactive;
}
#tags button.focused {
color: @black;
background: @focused;
}
#tags button.urgent {
color: @black;
background: @warning;
}
#window {
margin-right: 35pt;
margin-left: 35pt;
}
#pulseaudio {
background: @sound;
color: @black;
font-family: FiraMono Nerd Font;
}
#network {
background: @network;
color: @black;
}
#memory {
background: @memory;
color: @black;
}
#cpu {
background: @cpu;
color: @black;
}
#temperature {
background: @temp;
color: @black;
}
#language {
background: @layout;
color: @black;
}
#battery {
background: @battery;
color: @black;
}
#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: @battery;
}
#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;
}