Compare commits
3 commits
1767610c7c
...
26ff543629
Author | SHA1 | Date | |
---|---|---|---|
Tigor Hutasuhut | 26ff543629 | ||
Tigor Hutasuhut | 1b8dd28cde | ||
Tigor Hutasuhut | cf0532a43f |
|
@ -2,7 +2,6 @@
|
|||
{
|
||||
imports = [
|
||||
./gnome
|
||||
./sway
|
||||
./hyprland
|
||||
./syncthing.nix
|
||||
./obs.nix
|
||||
|
|
|
@ -4,10 +4,11 @@ let
|
|||
in
|
||||
{
|
||||
imports = [
|
||||
./dunst.nix
|
||||
# ./dunst.nix
|
||||
./hypridle.nix
|
||||
./hyprland.nix
|
||||
./hyprlock.nix
|
||||
./hyprshot.nix
|
||||
# hyprpaper seems to be broken with out of memory and failure to swap wallpapers correctly.
|
||||
# Use swww for now until the application is stable.
|
||||
# ./hyprpaper.nix
|
||||
|
@ -16,8 +17,10 @@ in
|
|||
./wallust.nix
|
||||
./waybar.nix
|
||||
./wlogout.nix
|
||||
./swappy.nix
|
||||
# ./swappy.nix
|
||||
./alacritty.nix
|
||||
./swayosd.nix
|
||||
./sway-notification-center.nix
|
||||
];
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
|
|
|
@ -8,6 +8,9 @@ in
|
|||
home.packages = [
|
||||
pkgs.dunst
|
||||
];
|
||||
wayland.windowManager.hyprland.settings.exec-once = [
|
||||
"dunst"
|
||||
];
|
||||
home.file.".config/dunst/dunstrc".text = generators.toINI { } {
|
||||
global = {
|
||||
# Which monitor should the notifications be displayed on.
|
||||
|
|
|
@ -22,7 +22,6 @@ in
|
|||
profile.home.programs.foot.enable = lib.mkForce true;
|
||||
|
||||
home.packages = [
|
||||
inputs.hyprland-contrib.packages.${pkgs.system}.grimblast
|
||||
pkgs.wl-clipboard
|
||||
pkgs.kcalc
|
||||
];
|
||||
|
@ -138,11 +137,6 @@ in
|
|||
# Language Input
|
||||
"$mod, I, exec, fcitx5-remote -t"
|
||||
|
||||
"$mod, PRINT, exec, grimblast --notify copysave output"
|
||||
"$mod SHIFT, PRINT, exec, grimblast --notify save output - | swappy -f -"
|
||||
", PRINT, exec, grimblast --notify copysave area"
|
||||
"SHIFT, PRINT, exec, grimblast --notify save area - | swappy -f -"
|
||||
"ALT, PRINT, exec, grimblast --wait 1 --notify save area - | swappy -f -"
|
||||
];
|
||||
|
||||
binde = [
|
||||
|
@ -236,15 +230,12 @@ in
|
|||
|
||||
exec-once=${init-wallpaper.path} ${./wallpaper.jpeg}
|
||||
exec-once=wallust run ${config.home.homeDirectory}/.cache/wallpaper/current
|
||||
exec-once=swayosd-libinput-backend
|
||||
exec-once=swayosd-server
|
||||
exec-once=swww-daemon
|
||||
exec-once=bash -c "sleep 10; hypridle"
|
||||
exec-once=waybar
|
||||
exec-once=nm-applet
|
||||
exec-once=pasystray
|
||||
exec-once=pypr
|
||||
exec-once=dunst
|
||||
|
||||
source=${config.home.homeDirectory}/.cache/wallust/hyprland.conf
|
||||
exec-once=sleep 0.2 && swww img ${config.home.homeDirectory}/.cache/wallpaper/current
|
||||
|
|
32
home/modules/hyprland/hyprshot.nix
Normal file
32
home/modules/hyprland/hyprshot.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
cfg = config.profile.hyprland;
|
||||
saveDir = "${config.home.homeDirectory}/Pictures/screenshots";
|
||||
in
|
||||
{
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
hyprshot
|
||||
satty
|
||||
];
|
||||
|
||||
home.activation.sattyDirCreate = lib.hm.dag.entryAfter [ "writeBoundary" ] /*sh*/ ''
|
||||
mkdir -p "${saveDir}"
|
||||
chown ${config.home.username} "${saveDir}"
|
||||
'';
|
||||
|
||||
wayland.windowManager.hyprland.settings.bind =
|
||||
let
|
||||
saveFilename = "${saveDir}/$(date +%Y-%m-%d_%H%M%S).png";
|
||||
sattySaveCommand = ''satty --save-after-copy --filename - --fullscreen --output-filename ${saveFilename}'';
|
||||
in
|
||||
[
|
||||
"$mod, PRINT, exec, hyprshot -m window --filename ${saveFilename}"
|
||||
"$mod SHIFT, PRINT, exec, hyprshot -m window --raw | ${sattySaveCommand}"
|
||||
", PRINT, exec, hyprshot -m region --filename ${saveFilename}"
|
||||
"SHIFT, PRINT, exec, hyprshot -m region --raw | ${sattySaveCommand}"
|
||||
"ALT, PRINT, exec, hyprshot -m output --filename ${saveFilename}"
|
||||
"ALT SHIFT, PRINT, exec, hyprshot -m output --raw | ${sattySaveCommand}"
|
||||
];
|
||||
};
|
||||
}
|
16
home/modules/hyprland/sway-notification-center.nix
Normal file
16
home/modules/hyprland/sway-notification-center.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
cfg = config.profile.hyprland;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
swaynotificationcenter
|
||||
libnotify
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland.settings.exec-once = [
|
||||
"swaync"
|
||||
];
|
||||
};
|
||||
}
|
20
home/modules/hyprland/swayosd.nix
Normal file
20
home/modules/hyprland/swayosd.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
cfg = config.profile.hyprland;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf cfg.enable {
|
||||
# services.swayosd = {
|
||||
# enable = true;
|
||||
# display = config.profile.hyprland.swayosd.display;
|
||||
# };
|
||||
home.packages = with pkgs; [
|
||||
swayosd
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland.settings.exec-once = [
|
||||
"swayosd-libinput-backend"
|
||||
"swayosd-server"
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./mako.nix
|
||||
./sway.nix
|
||||
./swaylock.nix
|
||||
./swayosd.nix
|
||||
./waybar.nix
|
||||
];
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
{ lib, config, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.profile.sway;
|
||||
in
|
||||
{
|
||||
# Notification daemon for wayland
|
||||
config = mkIf (cfg.enable && cfg.mako.enable) {
|
||||
services.mako = {
|
||||
enable = true;
|
||||
padding = "5";
|
||||
backgroundColor = "#050505";
|
||||
borderSize = 1;
|
||||
borderColor = "#454545";
|
||||
font = "JetBrainsMono Nerd Font 10";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,66 +0,0 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
let
|
||||
cfg = config.profile.sway;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
alacritty
|
||||
tofi
|
||||
findutils
|
||||
networkmanagerapplet
|
||||
];
|
||||
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
wayland.windowManager.sway.extraConfigEarly = ''
|
||||
exec "nm-applet --indicator"
|
||||
'';
|
||||
wayland.windowManager.sway.config =
|
||||
let
|
||||
mod = "Mod4";
|
||||
in
|
||||
{
|
||||
modifier = mod;
|
||||
keybindings = lib.mkOptionDefault
|
||||
{
|
||||
"${mod}+Return" = "exec ${pkgs.alacritty}/bin/alacritty";
|
||||
"${mod}+Shift+q" = "kill";
|
||||
"${mod}+d" = "exec ${pkgs.tofi}/bin/tofi-drun | ${pkgs.findutils}/bin/xargs swaymsg exec --";
|
||||
"XF86AudioRaiseVolume" = "exec wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+";
|
||||
"XF86AudioLowerVolume" = "exec wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-";
|
||||
"XF86AudioMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||
"XF86MonBrightnessUp" = "exec light -A 5";
|
||||
"XF86MonBrightnessDown" = "exec light -U 5";
|
||||
};
|
||||
|
||||
fonts = {
|
||||
names = [ "JetBrainsMono Nerd Font" ];
|
||||
style = "Bold Semi-Condensed";
|
||||
size = 11.0;
|
||||
};
|
||||
bars = [ ];
|
||||
};
|
||||
wayland.windowManager.sway.extraConfig = ''
|
||||
default_border none
|
||||
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused #373b41 #373b41 #373b41 #373b41 #373b41
|
||||
client.focused_inactive #282a2e #282a2e #282a2e #282a2e #282a2e
|
||||
client.urgent #f0c674 #f0c674 #f0c674 #f0c674 #f0c674
|
||||
client.placeholder #373b41 #373b41 #373b41 #373b41 #373b41
|
||||
|
||||
# swayfx config
|
||||
blur enable
|
||||
blur_xray enable
|
||||
blur_passes 3
|
||||
blur_radius 5
|
||||
layer_effects "waybar" shadows enable; blur enable;
|
||||
corner_radius 4
|
||||
# default_dim_inactive 0.2
|
||||
shadows enable
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
{ config, lib, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.profile.sway;
|
||||
in
|
||||
{
|
||||
config = mkIf cfg.enable {
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
show-failed-attempts = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{ config, lib, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.profile.sway;
|
||||
in
|
||||
{
|
||||
config = mkIf cfg.enable {
|
||||
services.swayosd = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,90 +0,0 @@
|
|||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
min-height: 0;
|
||||
font-family: Iosevka nerd font;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: rgba(29, 31, 33, 0.75);
|
||||
border-radius: 6px;
|
||||
border: 2px solid #303030;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
all: initial; /* Remove GTK theme values (waybar #1351) */
|
||||
min-width: 0; /* Fix weird spacing in materia (waybar #450) */
|
||||
box-shadow: inset 0 -3px transparent; /* Use box-shadow instead of border so the text isn't offset */
|
||||
padding: 6px 12px;
|
||||
color: #6c757d;
|
||||
}
|
||||
|
||||
#workspaces button.visible {
|
||||
color: #ede0d4;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
box-shadow: inherit;
|
||||
text-shadow: inherit;
|
||||
color: #ede0d4;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: #ffcb70;
|
||||
}
|
||||
|
||||
#battery,
|
||||
#backlight,
|
||||
#network,
|
||||
#clock,
|
||||
#tray,
|
||||
#pulseaudio {
|
||||
margin: 8px;
|
||||
padding-right: 16px;
|
||||
background-color: transparent;
|
||||
color: #ede0d4;
|
||||
}
|
||||
|
||||
#custom-swww {
|
||||
padding-right: 16px;
|
||||
background-color: transparent;
|
||||
color: #ede0d4;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background-color: #ede0d4;
|
||||
}
|
||||
#battery.warning,
|
||||
#battery.critical,
|
||||
#battery.urgent {
|
||||
color: #ede0d4;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
#battery.charging {
|
||||
background-color: #97a97c;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #ffcb70;
|
||||
color: #ede0d4;
|
||||
}
|
||||
}
|
||||
|
||||
tooltip {
|
||||
padding: 15px;
|
||||
background-color: #050505;
|
||||
border-radius: 6px;
|
||||
border: 2px solid #303030;
|
||||
}
|
|
@ -1,103 +0,0 @@
|
|||
{ config, lib, unstable, ... }:
|
||||
let
|
||||
cfg = config.profile.sway;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
style = ./waybar.css;
|
||||
systemd.enable = true;
|
||||
package = unstable.waybar;
|
||||
};
|
||||
|
||||
programs.waybar.settings = {
|
||||
main = {
|
||||
layer = "top";
|
||||
position = "bottom";
|
||||
spacing = 0;
|
||||
margin-bottom = 0;
|
||||
margin-left = 300;
|
||||
margin-right = 300;
|
||||
modules-left = [
|
||||
"sway/workspaces"
|
||||
];
|
||||
modules-center = [
|
||||
"clock"
|
||||
];
|
||||
modules-right = [
|
||||
"tray"
|
||||
"network"
|
||||
"battery"
|
||||
"pulseaudio"
|
||||
];
|
||||
|
||||
"sway/taskbar" = {
|
||||
format = "{icon}";
|
||||
on-click = "activate";
|
||||
on-click-right = "fullscreen";
|
||||
icon-size = 25;
|
||||
tooltip-format = "{title}";
|
||||
};
|
||||
|
||||
"sway/workspaces" = {
|
||||
disable-scroll = true;
|
||||
all-outputs = true;
|
||||
format-icons = {
|
||||
"1" = "";
|
||||
"2" = "";
|
||||
"3" = "";
|
||||
"4" = "";
|
||||
"5" = "";
|
||||
};
|
||||
persistent-workspaces = {
|
||||
"1" = [ ];
|
||||
"2" = [ ];
|
||||
"3" = [ ];
|
||||
"4" = [ ];
|
||||
"5" = [ ];
|
||||
};
|
||||
};
|
||||
|
||||
tray.spacing = 10;
|
||||
clock.format = "{:%I:%M %p - %a, %d %b %Y}";
|
||||
network = {
|
||||
format-wifi = "{icon}";
|
||||
format-icons = [ "" "" "" "" "" ];
|
||||
format-ethernet = "";
|
||||
format-disconnected = "";
|
||||
interval = 5;
|
||||
};
|
||||
|
||||
pulseaudio = {
|
||||
scroll-step = 5;
|
||||
max-volume = 150;
|
||||
format = "{icon} {volume}%";
|
||||
format-bluetooth = "";
|
||||
nospacing = 1;
|
||||
format-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
default = [ "" "" " " ];
|
||||
};
|
||||
on-click = "pamixer -t";
|
||||
};
|
||||
|
||||
battery = {
|
||||
format = "{icon} {capacity}%";
|
||||
format-icons = {
|
||||
charging = [ "" "" "" "" "" "" "" "" "" "" ];
|
||||
default = [ "" "" "" "" "" "" "" "" "" "" ];
|
||||
};
|
||||
format-full = "Charged ";
|
||||
interval = 5;
|
||||
states = {
|
||||
warning = 20;
|
||||
critical = 10;
|
||||
};
|
||||
tooltip = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -88,6 +88,9 @@
|
|||
flatpak = {
|
||||
enable = true;
|
||||
zen-browser.enable = true;
|
||||
redisinsight.enable = true;
|
||||
};
|
||||
|
||||
services.ntfy-sh.client.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue