snowfall migration wip homepc done
This commit is contained in:
parent
ed08a98651
commit
25774148e4
37 changed files with 1943 additions and 1447 deletions
44
homes/x86_64-linux/kylekrein/default.nix
Normal file
44
homes/x86_64-linux/kylekrein/default.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
osConfig ? {},
|
||||
...
|
||||
}: let
|
||||
name = config.snowfallorg.user.name;
|
||||
home = config.snowfallorg.user.home.directory;
|
||||
in
|
||||
with lib;
|
||||
with lib.custom; {
|
||||
imports = lib.snowfall.fs.get-non-default-nix-files-recursive ./.;
|
||||
custom = {
|
||||
programs = {
|
||||
fastfetch = {
|
||||
enable = true;
|
||||
firstNixOSInstall = 1729112485;
|
||||
};
|
||||
librewolf = enabled;
|
||||
prismlauncher.enable = osConfig.custom.presets.gaming.enable;
|
||||
bottles = enabled;
|
||||
};
|
||||
};
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
gdb
|
||||
element-desktop
|
||||
obs-studio
|
||||
neovim
|
||||
localsend
|
||||
kdePackages.kdenlive
|
||||
] ++ lib.optionals osConfig.custom.presets.gaming.enable [mcpelauncher-ui-qt];
|
||||
|
||||
sessionVariables = {
|
||||
EDITOR = "emacsclient -c";
|
||||
NH_OS_FLAKE = "${home}/nixos-config";
|
||||
NH_HOME_FLAKE = "${home}/nixos-config";
|
||||
NH_DARWIN_FLAKE = "${home}/nixos-config";
|
||||
};
|
||||
|
||||
stateVersion = "25.05";
|
||||
};
|
||||
}
|
||||
28
homes/x86_64-linux/kylekrein/emacs.nix
Normal file
28
homes/x86_64-linux/kylekrein/emacs.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
pkgs,
|
||||
system,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
emacs = inputs.emacs-kylekrein.packages.${system}.with-lsps-native;
|
||||
in {
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
package = emacs;
|
||||
};
|
||||
systemd.user.services.emacs = {
|
||||
Unit = {
|
||||
Description = "Launches (and relaunches) emacs";
|
||||
};
|
||||
Install = {
|
||||
WantedBy = ["default.target"];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.writeShellScript "run-emacs" ''
|
||||
${emacs}/bin/emacs --fg-daemon
|
||||
''}";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 5;
|
||||
};
|
||||
};
|
||||
}
|
||||
12
homes/x86_64-linux/kylekrein/git.nix
Normal file
12
homes/x86_64-linux/kylekrein/git.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{...}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Aleksandr Lebedev";
|
||||
userEmail = "alex.lebedev2003@icloud.com";
|
||||
extraConfig = {
|
||||
credential.helper = "manager";
|
||||
credential."https://github.com".username = "KyleKrein";
|
||||
credential.credentialStore = "plaintext";
|
||||
};
|
||||
};
|
||||
}
|
||||
27
homes/x86_64-linux/kylekrein/kitty.nix
Normal file
27
homes/x86_64-linux/kylekrein/kitty.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{osConfig, pkgs, ...}:
|
||||
{
|
||||
home.packages = with pkgs; [kitty-themes];
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
icons = "always";
|
||||
};
|
||||
programs.kitty = {
|
||||
enable = osConfig.custom.presets.workstation.enable;
|
||||
font = {
|
||||
name = "JetBrainsMono Nerd Font";
|
||||
size = 20;
|
||||
};
|
||||
settings = {
|
||||
confirm_os_window_close = 0;
|
||||
};
|
||||
#shellIntegration.enableFishIntegration = true;
|
||||
themeFile = "Catppuccin-Macchiato";
|
||||
#Also available: Catppuccin-Frappe Catppuccin-Latte Catppuccin-Macchiato Catppuccin-Mocha
|
||||
# See all available kitty themes at: https://github.com/kovidgoyal/kitty-themes/blob/46d9dfe230f315a6a0c62f4687f6b3da20fd05e4/themes.json
|
||||
};
|
||||
}
|
||||
47
homes/x86_64-linux/kylekrein/niri/drawerstyle.css
Normal file
47
homes/x86_64-linux/kylekrein/niri/drawerstyle.css
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
* {
|
||||
border: none;
|
||||
font-family: Font Awesome, Roboto, Arial, sans-serif;
|
||||
font-size: 16px;
|
||||
color: #eeeeee;
|
||||
border-radius: 10px;
|
||||
}
|
||||
window {
|
||||
background-color: rgba(50, 63, 99, 0.718);
|
||||
color: #eeeeee;
|
||||
}
|
||||
|
||||
/* search entry */
|
||||
entry {
|
||||
background-color: rgba(0, 0, 0, 0.2)
|
||||
}
|
||||
|
||||
button, image {
|
||||
background: none;
|
||||
border: none
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background-color: rgba(255, 255, 255, 0.1)
|
||||
}
|
||||
|
||||
/* in case you wanted to give category buttons a different look */
|
||||
#category-button {
|
||||
margin: 0 10px 0 10px
|
||||
}
|
||||
|
||||
#pinned-box {
|
||||
padding-bottom: 5px;
|
||||
border-bottom: 1px dotted gray
|
||||
}
|
||||
|
||||
#files-box {
|
||||
padding: 5px;
|
||||
border: 1px dotted gray;
|
||||
border-radius: 15px
|
||||
}
|
||||
|
||||
/* math operation result label */
|
||||
#math-label {
|
||||
font-weight: bold;
|
||||
font-size: 16px
|
||||
}
|
||||
97
homes/x86_64-linux/kylekrein/niri/hyprlock.nix
Normal file
97
homes/x86_64-linux/kylekrein/niri/hyprlock.nix
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
osConfig,
|
||||
...
|
||||
}: let
|
||||
enable = osConfig.custom.windowManagers.niri.enable;
|
||||
profile-image = ./nixos-warbler.png;
|
||||
battery = osConfig.custom.hardware.battery;
|
||||
battery-level = battery.scripts.labelPercent;
|
||||
in {
|
||||
programs.hyprlock = {
|
||||
inherit enable;
|
||||
settings = {
|
||||
general = {
|
||||
#enable_fingerprint = true;
|
||||
disable_loading_bar = true;
|
||||
hide_cursor = true;
|
||||
no_fade_in = false;
|
||||
grace = 10;
|
||||
};
|
||||
background = {
|
||||
path = "${./wallpaper.jpg}";
|
||||
blur_passes = 1;
|
||||
blur_size = 7;
|
||||
noise = 0.0117;
|
||||
contrast = 0.8916;
|
||||
brightness = 0.8172;
|
||||
vibrancy = 0.1696;
|
||||
vibrancy_darkness = 0.0;
|
||||
};
|
||||
image = {
|
||||
path = "${profile-image}";
|
||||
size = 150;
|
||||
border_size = 4;
|
||||
#border_color = "rgb(0C96F9)";
|
||||
rounding = -1; # Negative means circle
|
||||
position = "0, 220";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
};
|
||||
input-field = {
|
||||
size = "600, 100";
|
||||
outline_thickness = 3;
|
||||
dots_size = 0.33;
|
||||
dots_spacing = 0.15;
|
||||
dots_center = true;
|
||||
dots_rounding = -1;
|
||||
dots_fade_time = 200;
|
||||
placeholder_text = "<i>Input Password...</i>";
|
||||
hide_input = false;
|
||||
fade_on_empty = false;
|
||||
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
|
||||
fail_timeout = 2000;
|
||||
fail_transition = 300;
|
||||
position = "0, -20";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
};
|
||||
label =
|
||||
[
|
||||
{
|
||||
text = "$USER";
|
||||
font_family = "Fira Code";
|
||||
font_size = 56;
|
||||
position = "0, 100";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
{
|
||||
text = "$TIME";
|
||||
font_family = "Roboto";
|
||||
font_size = 72;
|
||||
position = "-40, -40";
|
||||
halign = "right";
|
||||
valign = "top";
|
||||
}
|
||||
{
|
||||
text = "$LAYOUT";
|
||||
font_family = "JetBrains Mono";
|
||||
font_size = 28;
|
||||
position = "-20, 20";
|
||||
halign = "right";
|
||||
valign = "bottom";
|
||||
}
|
||||
]
|
||||
++ lib.optional (battery.enable) {
|
||||
text = ''cmd[update:10000] ${battery-level}'';
|
||||
font_family = "JetBrains Mono";
|
||||
font_size = 28;
|
||||
position = "20, 20";
|
||||
halign = "left";
|
||||
valign = "bottom";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
358
homes/x86_64-linux/kylekrein/niri/niri.nix
Normal file
358
homes/x86_64-linux/kylekrein/niri/niri.nix
Normal file
|
|
@ -0,0 +1,358 @@
|
|||
#https://github.com/sodiboo/niri-flake/blob/main/default-config.kdl.nix
|
||||
#https://github.com/sodiboo/niri-flake/blob/main/docs.md
|
||||
#https://github.com/sodiboo/system/blob/main/niri.mod.nix
|
||||
{
|
||||
osConfig,
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
username = config.snowfallorg.user.name;
|
||||
home = config.snowfallorg.user.home.directory;
|
||||
in
|
||||
lib.mkIf osConfig.custom.windowManagers.niri.enable {
|
||||
programs.fuzzel = {
|
||||
enable = true;
|
||||
settings.main.terminal = "kitty";
|
||||
};
|
||||
services.swaync = {
|
||||
enable = true;
|
||||
};
|
||||
home.packages = with pkgs; [
|
||||
nwg-drawer
|
||||
wlogout
|
||||
brightnessctl
|
||||
fuzzel
|
||||
waybar
|
||||
swaybg
|
||||
libnotify
|
||||
hyprlock
|
||||
networkmanagerapplet
|
||||
custom.wvkbd-kylekrein
|
||||
custom.lisgd-kylekrein
|
||||
];
|
||||
programs.niri = {
|
||||
settings = {
|
||||
spawn-at-startup = [
|
||||
{
|
||||
command = [
|
||||
"${lib.getExe pkgs.custom.wvkbd-kylekrein}"
|
||||
"--hidden"
|
||||
];
|
||||
}
|
||||
{
|
||||
command = [
|
||||
"${lib.getExe pkgs.networkmanagerapplet}"
|
||||
];
|
||||
}
|
||||
{
|
||||
command = [
|
||||
"${lib.getExe pkgs.networkmanagerapplet}"
|
||||
];
|
||||
}
|
||||
{
|
||||
command = [
|
||||
"dbus-update-activation-environment"
|
||||
"--systemd"
|
||||
"--all"
|
||||
];
|
||||
}
|
||||
{
|
||||
command = [
|
||||
"${pkgs.solaar}/bin/solaar"
|
||||
"-w"
|
||||
"hide"
|
||||
];
|
||||
}
|
||||
{
|
||||
command = [
|
||||
"${lib.getExe pkgs.swaybg}"
|
||||
"-m"
|
||||
"fill"
|
||||
"-i"
|
||||
"${./wallpaper.jpg}"
|
||||
];
|
||||
}
|
||||
];
|
||||
layout = {
|
||||
preset-column-widths = [
|
||||
{proportion = 1.0 / 2.0;}
|
||||
{proportion = 1.0;}
|
||||
{proportion = 2.0 / 3.0;}
|
||||
{proportion = 1.0 / 3.0;}
|
||||
];
|
||||
default-column-width = {proportion = 1.0 / 2.0;};
|
||||
};
|
||||
binds = with config.lib.niri.actions; let
|
||||
sh = spawn "sh" "-c";
|
||||
emacs = action: sh "emacsclient -c --eval \"${action}\"";
|
||||
homedir = "/home/${username}/";
|
||||
screenshot-annotate = sh ''${lib.getExe pkgs.grim} -g "$(${lib.getExe pkgs.slurp} -w 0)" -t ppm - | ${lib.getExe pkgs.satty} --early-exit --copy-command 'wl-copy' --filename '-' --initial-tool brush'';
|
||||
in {
|
||||
"Mod+E".action = sh "emacsclient -c";
|
||||
"Mod+Shift+C".action = sh "dolphin";
|
||||
"Mod+C".action = emacs ''(dirvish \"${homedir}\")'';
|
||||
"Mod+T".action = spawn "kitty";
|
||||
"Mod+D".action = spawn "fuzzel";
|
||||
"Mod+B".action = spawn "librewolf";
|
||||
"Mod+H".action = show-hotkey-overlay;
|
||||
"Mod+F".action = fullscreen-window;
|
||||
"Mod+R".action = switch-preset-column-width;
|
||||
"Mod+Q".action = close-window;
|
||||
"Mod+Shift+S".action = screenshot-annotate;
|
||||
"Mod+1".action = focus-workspace 1;
|
||||
"Mod+2".action = focus-workspace 2;
|
||||
"Mod+3".action = focus-workspace 3;
|
||||
"Mod+4".action = focus-workspace 4;
|
||||
"Mod+5".action = focus-workspace 5;
|
||||
"Mod+6".action = focus-workspace 6;
|
||||
"Mod+7".action = focus-workspace 7;
|
||||
"Mod+8".action = focus-workspace 8;
|
||||
"Mod+9".action = focus-workspace 9;
|
||||
"Mod+0".action = focus-workspace 10;
|
||||
|
||||
"Mod+Shift+1".action.move-column-to-workspace = 1;
|
||||
"Mod+Shift+2".action.move-column-to-workspace = 2;
|
||||
"Mod+Shift+3".action.move-column-to-workspace = 3;
|
||||
"Mod+Shift+4".action.move-column-to-workspace = 4;
|
||||
"Mod+Shift+5".action.move-column-to-workspace = 5;
|
||||
"Mod+Shift+6".action.move-column-to-workspace = 6;
|
||||
"Mod+Shift+7".action.move-column-to-workspace = 7;
|
||||
"Mod+Shift+8".action.move-column-to-workspace = 8;
|
||||
"Mod+Shift+9".action.move-column-to-workspace = 9;
|
||||
"Mod+Shift+0".action.move-column-to-workspace = 10;
|
||||
|
||||
"Mod+Left".action = focus-column-left;
|
||||
"Mod+Right".action = focus-column-right;
|
||||
"Mod+Up".action = focus-workspace-up;
|
||||
"Mod+Down".action = focus-workspace-down;
|
||||
"Mod+Shift+Left".action = move-column-left;
|
||||
"Mod+Shift+Right".action = move-column-right;
|
||||
"Mod+Shift+Up".action = move-column-to-workspace-up;
|
||||
"Mod+Shift+Down".action = move-column-to-workspace-down;
|
||||
"Mod+Ctrl+Left".action = focus-monitor-left;
|
||||
"Mod+Ctrl+Right".action = focus-monitor-right;
|
||||
"Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
|
||||
"Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
|
||||
|
||||
"XF86AudioRaiseVolume".action = sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+";
|
||||
"XF86AudioLowerVolume".action = sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-";
|
||||
"XF86AudioMute".action = sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||
|
||||
"XF86MonBrightnessUp".action = sh "brightnessctl set 10%+";
|
||||
"XF86MonBrightnessDown".action = sh "brightnessctl set 10%-";
|
||||
#"Mod+Tab".action = focus-window-down-or-column-right;
|
||||
#"Mod+Shift+Tab".action = focus-window-up-or-column-left;
|
||||
"Mod+Tab".action = toggle-overview;
|
||||
};
|
||||
input = {
|
||||
power-key-handling.enable = true;
|
||||
focus-follows-mouse = {
|
||||
#enable = true;
|
||||
};
|
||||
warp-mouse-to-focus.enable = true;
|
||||
keyboard = {
|
||||
xkb.layout = "us, ru, de";
|
||||
xkb.options = "grp:lctrl_toggle, ctrl:nocaps";
|
||||
track-layout = "window";
|
||||
numlock = true;
|
||||
};
|
||||
touchpad = {
|
||||
tap = true;
|
||||
#accel-profile = "adaptive";
|
||||
click-method = "clickfinger";
|
||||
};
|
||||
};
|
||||
cursor = {
|
||||
hide-after-inactive-ms = 10000;
|
||||
};
|
||||
gestures.hot-corners.enable = true;
|
||||
prefer-no-csd = true;
|
||||
environment = {
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
__GL_GSYNC_ALLOWED = "1";
|
||||
QT_QPA_PLATFORM = "wayland";
|
||||
DISPLAY = ":0";
|
||||
};
|
||||
layer-rules = [
|
||||
{
|
||||
#this is for later to place keyboard on top of hyprlock
|
||||
matches = [{namespace = "wvkbd";}];
|
||||
}
|
||||
];
|
||||
window-rules = [
|
||||
{
|
||||
#active
|
||||
matches = [
|
||||
{
|
||||
is-active = true;
|
||||
}
|
||||
];
|
||||
opacity = 1.0;
|
||||
}
|
||||
{
|
||||
#inactive
|
||||
matches = [
|
||||
{
|
||||
is-active = false;
|
||||
}
|
||||
];
|
||||
opacity = 1.0;
|
||||
}
|
||||
{
|
||||
#opaque
|
||||
matches = [
|
||||
{
|
||||
app-id = "emacs";
|
||||
}
|
||||
{
|
||||
app-id = "blender";
|
||||
}
|
||||
];
|
||||
opacity = 1.0;
|
||||
}
|
||||
{
|
||||
#Popups
|
||||
matches = [
|
||||
{
|
||||
title = "emacs-run-launcher";
|
||||
}
|
||||
{
|
||||
title = "Paradox Crash Reporter";
|
||||
}
|
||||
];
|
||||
open-floating = true;
|
||||
open-focused = true;
|
||||
}
|
||||
{
|
||||
#PiP
|
||||
matches = [
|
||||
{
|
||||
title = "Picture-in-Picture";
|
||||
}
|
||||
];
|
||||
open-floating = true;
|
||||
open-focused = false;
|
||||
opacity = 1.0;
|
||||
default-floating-position = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
relative-to = "top-right";
|
||||
};
|
||||
}
|
||||
];
|
||||
xwayland-satellite = {
|
||||
enable = true;
|
||||
path = "${lib.getExe pkgs.xwayland-satellite-unstable}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.hypridle = let
|
||||
niri = lib.getExe config.programs.niri.package;
|
||||
loginctl = "${pkgs.systemd}/bin/loginctl";
|
||||
pidof = "${pkgs.procps}/bin/pidof";
|
||||
locking-script = "${pidof} hyprlock || ${lib.getExe pkgs.hyprlock}";
|
||||
systemctl = "${pkgs.systemd}/bin/systemctl";
|
||||
#locking-script = "${pkgs.swaylock}/bin/swaylock --daemonize";
|
||||
#unlocking-script = "pkill -SIGUSR1 swaylock";
|
||||
suspendScript = cmd:
|
||||
pkgs.writeShellScript "suspend-script" ''
|
||||
# check if any player has status "Playing"
|
||||
${lib.getExe pkgs.playerctl} -a status | ${lib.getExe pkgs.ripgrep} Playing -q
|
||||
# only suspend if nothing is playing
|
||||
if [ $? == 1 ]; then
|
||||
${cmd}
|
||||
fi
|
||||
'';
|
||||
in {
|
||||
enable = true;
|
||||
settings.general = {
|
||||
before_sleep_cmd = "${pidof} hyprlock || ${loginctl} lock-session;#${niri} msg action power-off-monitors";
|
||||
after_sleep_cmd = "#${niri} msg action power-on-monitors";
|
||||
lock_cmd = "${locking-script}";
|
||||
};
|
||||
settings.listener = let
|
||||
secondary = "${systemctl} suspend";
|
||||
in
|
||||
lib.mkIf (osConfig.custom.hardware.battery.enable) [
|
||||
#{
|
||||
# timeout = 30;
|
||||
# command = "pidof hyprlock && ${secondary}";
|
||||
#}
|
||||
{
|
||||
timeout = 870;
|
||||
on-timeout = "${suspendScript ''${pkgs.libnotify}/bin/notify-send "You are idle. Going to sleep in 30 seconds"''}";
|
||||
}
|
||||
{
|
||||
timeout = 900;
|
||||
on-timeout = "${suspendScript "${systemctl} suspend"}";
|
||||
}
|
||||
];
|
||||
};
|
||||
services = {
|
||||
mako = {
|
||||
enable = false;
|
||||
settings = {
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd.user.services.lisgd-niri = lib.mkIf (osConfig.custom.hardware.framework12.enable) {
|
||||
Unit = {
|
||||
Description = "Makes sure that you have touchscreen gestures.";
|
||||
};
|
||||
Install = {
|
||||
WantedBy = ["default.target"];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.writeShellScript "run-lisgd" ''
|
||||
${pkgs.custom.lisgd-kylekrein}/bin/lisgd
|
||||
''}";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 5;
|
||||
};
|
||||
};
|
||||
systemd.user.services.autorotate-niri = lib.mkIf (osConfig.custom.hardware.framework12.enable) {
|
||||
Unit = {
|
||||
Description = "Adds auto rotation to Niri.";
|
||||
};
|
||||
Install = {
|
||||
WantedBy = ["default.target"];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.writeShellScript "autorotate" ''
|
||||
transform="normal"
|
||||
|
||||
monitor-sensor | while read -r line; do
|
||||
case "$line" in
|
||||
*normal*)
|
||||
new_transform="normal"
|
||||
;;
|
||||
*right-up*)
|
||||
new_transform="270"
|
||||
;;
|
||||
*bottom-up*)
|
||||
new_transform="180"
|
||||
;;
|
||||
*left-up*)
|
||||
new_transform="90"
|
||||
;;
|
||||
*)
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$new_transform" != "$transform" ]]; then
|
||||
transform="$new_transform"
|
||||
echo "Transform: $transform"
|
||||
niri msg output eDP-1 transform "$transform"
|
||||
systemctl --user restart lisgd-niri.service
|
||||
fi
|
||||
done
|
||||
''}";
|
||||
Restart = "always";
|
||||
RestartSec = 5;
|
||||
};
|
||||
};
|
||||
}
|
||||
BIN
homes/x86_64-linux/kylekrein/niri/nixos-warbler.png
Executable file
BIN
homes/x86_64-linux/kylekrein/niri/nixos-warbler.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 164 KiB |
BIN
homes/x86_64-linux/kylekrein/niri/wallpaper.jpg
Normal file
BIN
homes/x86_64-linux/kylekrein/niri/wallpaper.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 MiB |
163
homes/x86_64-linux/kylekrein/niri/waybar.nix
Normal file
163
homes/x86_64-linux/kylekrein/niri/waybar.nix
Normal file
|
|
@ -0,0 +1,163 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
osConfig,
|
||||
...
|
||||
}: let
|
||||
battery = osConfig.custom.hardware.battery;
|
||||
enable = osConfig.custom.windowManagers.niri.enable;
|
||||
in {
|
||||
programs.waybar = {
|
||||
inherit enable;
|
||||
systemd.enable = true;
|
||||
style = ''
|
||||
${builtins.readFile ./waybarstyle.css}'';
|
||||
settings = [
|
||||
{
|
||||
height = 36;
|
||||
layer = "top";
|
||||
position = "top";
|
||||
tray = {spacing = 3;};
|
||||
modules-center = [
|
||||
"clock"
|
||||
];
|
||||
modules-left = [
|
||||
"custom/drawer"
|
||||
"wlr/taskbar"
|
||||
"niri/workspaces"
|
||||
"niri/window"
|
||||
];
|
||||
modules-right =
|
||||
[
|
||||
"backlight"
|
||||
"pulseaudio"
|
||||
#"network"
|
||||
#"cpu"
|
||||
"memory"
|
||||
#"temperature"
|
||||
"niri/language"
|
||||
]
|
||||
++ lib.optional battery.enable "custom/battery"
|
||||
++ [
|
||||
"tray"
|
||||
"custom/notification"
|
||||
"custom/power"
|
||||
];
|
||||
battery = lib.mkIf battery.enable {
|
||||
format = " {time} {icon} ";
|
||||
format-alt = " {capacity}% {icon} ";
|
||||
format-charging = " {capacity}% ";
|
||||
format-icons = ["" "" "" "" ""];
|
||||
format-plugged = " {capacity}% ";
|
||||
states = {
|
||||
critical = 10;
|
||||
warning = 20;
|
||||
};
|
||||
};
|
||||
backlight = {
|
||||
format = "{percent}% ";
|
||||
on-scroll-up = "${pkgs.brightnessctl}/bin/brightnessctl s 5%+";
|
||||
on-scroll-down = "${pkgs.brightnessctl}/bin/brightnessctl s 5%-";
|
||||
};
|
||||
"custom/battery" = {
|
||||
exec = "${pkgs.writeShellScriptBin "battery-widget" ''
|
||||
${battery.scripts.labelAdaptive}
|
||||
${battery.scripts.labelPercent}
|
||||
''}/bin/battery-widget";
|
||||
interval = 20;
|
||||
tooltip = true;
|
||||
};
|
||||
clock = {
|
||||
format = "{:%a %d | %H:%M}";
|
||||
format-alt = "{:%d.%m.%Y}";
|
||||
tooltip-format = "{:%d.%m.%Y | %H:%M}";
|
||||
};
|
||||
cpu = {
|
||||
format = "{usage}% ";
|
||||
tooltip = false;
|
||||
};
|
||||
"custom/drawer" = {
|
||||
format = "<span foreground='white'></span>";
|
||||
tooltip = false;
|
||||
on-click = ''nwg-drawer -fm "dolphin" -closebtn "right" -nocats -term "kitty" -ovl -wm "niri" -s "${./drawerstyle.css}" '';
|
||||
};
|
||||
"niri/language" = {
|
||||
format = "{}";
|
||||
format-en = "EN";
|
||||
format-ru = "RU";
|
||||
format-de = "DE";
|
||||
on-click = "niri msg action switch-layout next";
|
||||
on-click-right = "niri msg action switch-layout prev";
|
||||
};
|
||||
"wlr/taskbar" = {
|
||||
format = "{icon}";
|
||||
icon-size = 18;
|
||||
tooltip-format = "{title}";
|
||||
on-click = "activate";
|
||||
on-click-middle = "close";
|
||||
};
|
||||
memory = {
|
||||
interval = 1;
|
||||
format = " {used}/{total}Gb";
|
||||
};
|
||||
network = {
|
||||
interval = 1;
|
||||
format-alt = "{ifname}: {ipaddr}/{cidr}";
|
||||
format-disconnected = "Disconnected ⚠";
|
||||
format-ethernet = "{ifname}: {ipaddr}/{cidr} up: {bandwidthUpBits} down: {bandwidthDownBits}";
|
||||
format-linked = "{ifname} (No IP) ";
|
||||
#format-wifi = "{signalStrength}% ";
|
||||
format-wifi = "{signalStrength}% ";
|
||||
tooltip-format = "{essid} ({signalStrength}%) ";
|
||||
};
|
||||
pulseaudio = {
|
||||
format = "{icon} {volume}% {format_source}";
|
||||
format-bluetooth = "{icon} {volume}% {format_source}";
|
||||
format-bluetooth-muted = " {format_source}";
|
||||
format-icons = {
|
||||
car = "";
|
||||
default = [" " " " " "];
|
||||
handsfree = "";
|
||||
headphones = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
};
|
||||
format-muted = " {format_source}";
|
||||
format-source = " {volume}%";
|
||||
format-source-muted = " ";
|
||||
on-click = "${pkgs.pwvucontrol}/bin/pwvucontrol";
|
||||
};
|
||||
"hyprland/submap" = {format = ''<span style="italic">{}</span>'';};
|
||||
temperature = {
|
||||
critical-threshold = 80;
|
||||
format = "{temperatureC}°C {icon}";
|
||||
format-icons = ["" "" ""];
|
||||
};
|
||||
|
||||
"custom/power" = {
|
||||
format = "⏻";
|
||||
tooltip = false;
|
||||
on-click = "wlogout";
|
||||
};
|
||||
|
||||
"custom/notification" = {
|
||||
tooltip = false;
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
notification = "<span foreground='red'></span>";
|
||||
none = "";
|
||||
dnd-notification = "<span foreground='red'></span>";
|
||||
dnd-none = "";
|
||||
};
|
||||
return-type = "json";
|
||||
exec-if = "which swaync-client";
|
||||
exec = "swaync-client -swb";
|
||||
on-click = "sleep 0.1 && swaync-client -t -sw";
|
||||
on-click-right = "sleep 0.1 && swaync-client -d -sw";
|
||||
escape = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
104
homes/x86_64-linux/kylekrein/niri/waybarstyle.css
Normal file
104
homes/x86_64-linux/kylekrein/niri/waybarstyle.css
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
* {
|
||||
border: none;
|
||||
font-family: Font Awesome, Roboto, Arial, sans-serif;
|
||||
font-size: 16px;
|
||||
color: #B9826A;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
window {
|
||||
font-weight: bold;
|
||||
}
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
}
|
||||
/*-----module groups----*/
|
||||
.modules-right {
|
||||
background-color: rgba(0,43,51,0.85);
|
||||
margin: 2px 10px 0 0;
|
||||
}
|
||||
.modules-center {
|
||||
background-color: rgba(0,43,51,0.85);
|
||||
margin: 2px 0 0 0;
|
||||
}
|
||||
.modules-left {
|
||||
margin: 2px 0 0 5px;
|
||||
background-color: rgba(0,43,51,0.85);
|
||||
}
|
||||
/*-----modules indv----*/
|
||||
#workspaces button {
|
||||
padding: 1px 5px;
|
||||
background-color: transparent;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
box-shadow: inherit;
|
||||
background-color: rgba(0,153,153,1);
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
background-color: rgba(0,119,179,0.6);
|
||||
}
|
||||
|
||||
#clock,
|
||||
#battery,
|
||||
#cpu,
|
||||
#memory,
|
||||
#temperature,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#custom-media,
|
||||
#tray,
|
||||
#mode,
|
||||
#niri-language,
|
||||
#language,
|
||||
#custom-power,
|
||||
#custom-menu,
|
||||
#custom-battery,
|
||||
#custom-notification,
|
||||
#custom-drawer,
|
||||
#backlight,
|
||||
#workspaces,
|
||||
#window,
|
||||
#taskbar,
|
||||
#idle_inhibitor {
|
||||
margin: 0px 0px;
|
||||
padding: 0px 5px;
|
||||
border-right: 1px solid rgba(255,255,255,0.2);
|
||||
border-radius: 0px;
|
||||
}
|
||||
#clock,
|
||||
#custom-power,
|
||||
#window {
|
||||
border-right: none;
|
||||
}
|
||||
#custom-drawer {
|
||||
font-size: 20px;
|
||||
}
|
||||
#custom-power,
|
||||
#custom-drawer,
|
||||
#custom-notification {
|
||||
padding: 0px 0.5em 0px 0.3em;
|
||||
}
|
||||
#mode {
|
||||
color: #cc3436;
|
||||
font-weight: bold;
|
||||
}
|
||||
/*-----Indicators----*/
|
||||
#idle_inhibitor.activated {
|
||||
color: #2dcc36;
|
||||
}
|
||||
#pulseaudio.muted {
|
||||
color: #cc3436;
|
||||
}
|
||||
#battery.charging {
|
||||
color: #2dcc36;
|
||||
}
|
||||
#battery.warning:not(.charging) {
|
||||
color: #e6e600;
|
||||
}
|
||||
#battery.critical:not(.charging) {
|
||||
color: #cc3436;
|
||||
}
|
||||
#temperature.critical {
|
||||
color: #cc3436;
|
||||
}
|
||||
22
homes/x86_64-linux/tania/default.nix
Normal file
22
homes/x86_64-linux/tania/default.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
# User information gathered by Snowfall Lib is available.
|
||||
let
|
||||
name = config.snowfallorg.user.name;
|
||||
home = config.snowfallorg.user.home.directory;
|
||||
in {
|
||||
imports = lib.snowfall.fs.get-non-default-nix-files ./.;
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
];
|
||||
|
||||
sessionVariables = {
|
||||
};
|
||||
|
||||
stateVersion = "25.05";
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue