mirror of
https://github.com/kittywitch/nixfiles.git
synced 2026-02-09 04:19:19 -08:00
feat(niri): noctalia shell :o
This commit is contained in:
parent
540ca5f762
commit
adaf2b06e5
20 changed files with 408 additions and 72 deletions
|
|
@ -38,12 +38,12 @@ in {
|
|||
packages' = [
|
||||
"udiskie"
|
||||
"easyeffects"
|
||||
"pasystray"
|
||||
#"pasystray"
|
||||
];
|
||||
packages = [
|
||||
"pasystray"
|
||||
"pavucontrol"
|
||||
"networkmanagerapplet"
|
||||
#"pasystray"
|
||||
#"pavucontrol"
|
||||
#"networkmanagerapplet"
|
||||
];
|
||||
packageCommands = let
|
||||
packageCommands' = map packageCommand' packages';
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ in {
|
|||
bindWorkspace "0" 10
|
||||
)
|
||||
];
|
||||
noctalia = "${getExe parent.services.noctalia-shell.package} ipc call";
|
||||
# See tip near https://github.com/sodiboo/niri-flake/blob/main/docs.md#user-content-programsnirisettingsbindsnameaction
|
||||
sh = config.lib.niri.actions.spawn "sh" "-c";
|
||||
# ▀▀█
|
||||
|
|
@ -35,9 +36,13 @@ in {
|
|||
personalBindings = {
|
||||
"Mod+Return".action = sh ''${getExe config.programs.alacritty.package}'';
|
||||
"Mod+T".action.toggle-window-floating = {};
|
||||
"Mod+D".action = sh ''${getExe config.programs.fuzzel.package} -D no -T "${getExe config.programs.alacritty.package} --command"'';
|
||||
"Mod+Escape".action = sh ''${getExe config.programs.wlogout.package} -p layer-shell'';
|
||||
"Mod+Shift+Escape".action = sh ''${getExe config.programs.swaylock.package} -f'';
|
||||
#"Mod+D".action = sh ''${getExe config.programs.fuzzel.package} -D no -T "${getExe config.programs.alacritty.package} --command"'';
|
||||
"Mod+D".action = sh ''${noctalia} launcher toggle'';
|
||||
"Mod+Shift+D".action = sh ''${noctalia} launcher clipboard'';
|
||||
#"Mod+Escape".action = sh ''${getExe config.programs.wlogout.package} -p layer-shell'';
|
||||
"Mod+Escape".action = sh ''${noctalia} sessionMenu toggle'';
|
||||
#"Mod+Shift+Escape".action = sh ''${getExe config.programs.swaylock.package} -f'';
|
||||
"Mod+Shift+Escape".action = sh ''${noctalia} lockScreen toggle'';
|
||||
"Mod+Tab" = {
|
||||
#repeat = false;
|
||||
cooldown-ms = 150;
|
||||
|
|
@ -221,7 +226,31 @@ in {
|
|||
action = sh ''${swayosd-client} --output-volume mute-toggle'';
|
||||
};
|
||||
};
|
||||
mediaBindingsAvizoless = mkIf (!(config.services.avizo.enable || config.services.swayosd.enable)) {
|
||||
mediaBindingsNoctalia = let
|
||||
vol = "${noctalia} volume";
|
||||
bl = "${noctalia} brightness";
|
||||
in
|
||||
mkIf config.programs.noctalia-shell.enable {
|
||||
"XF86MonBrightnessUp".action = sh ''${bl} increase'';
|
||||
"XF86MonBrightnessDown".action = sh ''${bl} decrease'';
|
||||
"XF86AudioRaiseVolume" = {
|
||||
allow-when-locked = true;
|
||||
action = sh ''${vol} increase'';
|
||||
};
|
||||
"XF86AudioLowerVolume" = {
|
||||
allow-when-locked = true;
|
||||
action = sh ''${vol} decrease'';
|
||||
};
|
||||
"XF86AudioMute" = {
|
||||
allow-when-locked = true;
|
||||
action = sh ''${vol} muteOutput'';
|
||||
};
|
||||
"Shift+XF86AudioMute" = {
|
||||
allow-when-locked = true;
|
||||
action = sh ''${vol} muteInput'';
|
||||
};
|
||||
};
|
||||
mediaBindingsAvizoless = mkIf (!(config.services.avizo.enable || config.programs.noctalia-shell.enable || config.services.swayosd.enable)) {
|
||||
"XF86MonBrightnessUp".action = sh ''${getExe pkgs.brightnessctl} -c backlight set 5%+'';
|
||||
"XF86MonBrightnessDown".action = sh ''${getExe pkgs.brightnessctl} -c backlight set 5%-'';
|
||||
"XF86AudioRaiseVolume".action = sh ''${parent.services.wireplumber.package}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+'';
|
||||
|
|
@ -235,6 +264,7 @@ in {
|
|||
personalBindings
|
||||
mediaBindingsCommon
|
||||
mediaBindingsAvizo
|
||||
mediaBindingsNoctalia
|
||||
mediaBindingsSwayOSD
|
||||
mediaBindingsAvizoless
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{config, ...}: {
|
||||
stylix.targets.fuzzel.enable = config.programs.fuzzel.enable;
|
||||
programs.fuzzel = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
255
home/environments/niri/noctalia.nix
Normal file
255
home/environments/niri/noctalia.nix
Normal file
|
|
@ -0,0 +1,255 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.meta) getExe;
|
||||
in {
|
||||
programs.noctalia-shell = {
|
||||
enable = true;
|
||||
settings = {
|
||||
settingsVersion = 15;
|
||||
bar = {
|
||||
position = "top";
|
||||
backgroundOpacity = 0.9;
|
||||
monitors = [];
|
||||
density = "comfortable";
|
||||
showCapsule = true;
|
||||
floating = true;
|
||||
marginVertical = 0.25;
|
||||
marginHorizontal = 0.25;
|
||||
widgets = {
|
||||
left = [
|
||||
{
|
||||
id = "Workspace";
|
||||
labelMode = "name";
|
||||
}
|
||||
{
|
||||
id = "ActiveWindow";
|
||||
widgetWidth = 300;
|
||||
}
|
||||
];
|
||||
center = [
|
||||
{
|
||||
id = "MediaMini";
|
||||
showAlbumArt = true;
|
||||
showVisualizer = true;
|
||||
scrollingMode = "always";
|
||||
# check if this works,
|
||||
# if not, rewrite their system for it o.o
|
||||
widgetWidth = 300;
|
||||
}
|
||||
{
|
||||
id = "Clock";
|
||||
formatHorizontal = "yyyy-MM-dd HH:mm t";
|
||||
}
|
||||
{
|
||||
id = "NightLight";
|
||||
}
|
||||
{
|
||||
id = "DarkMode";
|
||||
}
|
||||
{
|
||||
id = "KeepAwake";
|
||||
}
|
||||
{
|
||||
id = "ScreenRecorder";
|
||||
}
|
||||
];
|
||||
right = [
|
||||
{
|
||||
id = "SystemMonitor";
|
||||
}
|
||||
{
|
||||
id = "Tray";
|
||||
}
|
||||
{
|
||||
id = "NotificationHistory";
|
||||
}
|
||||
{
|
||||
id = "Battery";
|
||||
}
|
||||
{
|
||||
id = "Volume";
|
||||
}
|
||||
{
|
||||
id = "Brightness";
|
||||
}
|
||||
{
|
||||
id = "ControlCenter";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
general = {
|
||||
avatarImage = ../../user/avatar.jpg;
|
||||
dimDesktop = false;
|
||||
showScreenCorners = false;
|
||||
forceBlackScreenCorners = false;
|
||||
radiusRatio = 1;
|
||||
screenRadiusRatio = 1;
|
||||
animationSpeed = 1;
|
||||
animationDisabled = false;
|
||||
};
|
||||
location = {
|
||||
name = "Vancouver";
|
||||
useFahrenheit = false;
|
||||
use12hourFormat = false;
|
||||
showWeekNumberInCalendar = false;
|
||||
};
|
||||
screenRecorder = {
|
||||
directory = "${config.home.homeDirectory}/Videos/";
|
||||
frameRate = 60;
|
||||
audioCodec = "opus";
|
||||
videoCodec = "h264";
|
||||
quality = "very_high";
|
||||
colorRange = "limited";
|
||||
showCursor = true;
|
||||
audioSource = "default_output";
|
||||
videoSource = "portal";
|
||||
};
|
||||
wallpaper = {
|
||||
# konawall
|
||||
enabled = false;
|
||||
directory = "";
|
||||
enableMultiMonitorDirectories = false;
|
||||
setWallpaperOnAllMonitors = true;
|
||||
defaultWallpaper = "";
|
||||
fillMode = "crop";
|
||||
fillColor = "#000000";
|
||||
randomEnabled = false;
|
||||
randomIntervalSec = 300;
|
||||
transitionDuration = 1500;
|
||||
transitionType = "random";
|
||||
transitionEdgeSmoothness = 0.05;
|
||||
monitors = [];
|
||||
};
|
||||
appLauncher = {
|
||||
enableClipboardHistory = true;
|
||||
position = "center";
|
||||
backgroundOpacity = 1;
|
||||
pinnedExecs = [];
|
||||
useApp2Unit = false;
|
||||
sortByMostUsed = true;
|
||||
terminalCommand = "${getExe config.programs.alacritty.package}";
|
||||
};
|
||||
controlCenter = {
|
||||
position = "close_to_bar_button";
|
||||
quickSettingsStyle = "compact";
|
||||
widgets = {
|
||||
quickSettings = [
|
||||
{
|
||||
id = "WiFi";
|
||||
}
|
||||
{
|
||||
id = "Bluetooth";
|
||||
}
|
||||
{
|
||||
id = "Notifications";
|
||||
}
|
||||
{
|
||||
id = "ScreenRecorder";
|
||||
}
|
||||
{
|
||||
id = "PowerProfile";
|
||||
}
|
||||
{
|
||||
id = "WallpaperSelector";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
dock = {
|
||||
displayMode = "auto_hide";
|
||||
backgroundOpacity = 1;
|
||||
floatingRatio = 1;
|
||||
onlySameOutput = true;
|
||||
monitors = [];
|
||||
pinnedApps = [];
|
||||
};
|
||||
network = {
|
||||
wifiEnabled = true;
|
||||
};
|
||||
notifications = {
|
||||
doNotDisturb = false;
|
||||
monitors = [];
|
||||
location = "top_right";
|
||||
alwaysOnTop = false;
|
||||
lastSeenTs = 0;
|
||||
respectExpireTimeout = false;
|
||||
lowUrgencyDuration = 3;
|
||||
normalUrgencyDuration = 8;
|
||||
criticalUrgencyDuration = 15;
|
||||
};
|
||||
osd = {
|
||||
enabled = true;
|
||||
location = "top_right";
|
||||
monitors = [];
|
||||
autoHideMs = 2000;
|
||||
};
|
||||
audio = {
|
||||
volumeStep = 5;
|
||||
volumeOverdrive = false;
|
||||
cavaFrameRate = 60;
|
||||
visualizerType = "linear";
|
||||
mprisBlacklist = [];
|
||||
preferredPlayer = "";
|
||||
};
|
||||
ui = {
|
||||
fontDefault = config.stylix.fonts.sansSerif;
|
||||
fontFixed = config.stylix.fonts.monospace;
|
||||
fontDefaultScale = 1;
|
||||
fontFixedScale = 1;
|
||||
monitorsScaling = [
|
||||
{
|
||||
name = "DP-2";
|
||||
scale = 1.25;
|
||||
}
|
||||
];
|
||||
idleInhibitorEnabled = false;
|
||||
tooltipsEnabled = true;
|
||||
};
|
||||
brightness = {
|
||||
brightnessStep = 5;
|
||||
};
|
||||
colorSchemes = {
|
||||
useWallpaperColors = false;
|
||||
predefinedScheme = "Dracula";
|
||||
darkMode = true;
|
||||
matugenSchemeType = "scheme-fruit-salad";
|
||||
generateTemplatesForPredefined = true;
|
||||
};
|
||||
templates = {
|
||||
gtk = false;
|
||||
qt = false;
|
||||
kitty = false;
|
||||
ghostty = false;
|
||||
foot = false;
|
||||
fuzzel = false;
|
||||
discord = false;
|
||||
discord_vesktop = false;
|
||||
discord_webcord = false;
|
||||
discord_armcord = false;
|
||||
discord_equibop = false;
|
||||
discord_lightcord = false;
|
||||
discord_dorion = false;
|
||||
pywalfox = false;
|
||||
enableUserTemplates = false;
|
||||
};
|
||||
nightLight = {
|
||||
enabled = false;
|
||||
forced = false;
|
||||
autoSchedule = true;
|
||||
nightTemp = "4000";
|
||||
dayTemp = "6500";
|
||||
manualSunrise = "06:30";
|
||||
manualSunset = "18:30";
|
||||
};
|
||||
hooks = {
|
||||
enabled = false;
|
||||
wallpaperChange = "";
|
||||
darkModeChange = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,10 +1,18 @@
|
|||
{config, ...}: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
parent,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.meta) getExe;
|
||||
noctalia = "${getExe parent.services.noctalia-shell.package} ipc call";
|
||||
in {
|
||||
services.swayidle = {
|
||||
enable = true;
|
||||
timeouts = [
|
||||
{
|
||||
timeout = 600;
|
||||
command = "${config.programs.swaylock.package}/bin/swaylock* -f";
|
||||
command = "${noctalia} lockScreen toggle";
|
||||
}
|
||||
{
|
||||
timeout = 1200;
|
||||
|
|
@ -14,7 +22,7 @@
|
|||
events = [
|
||||
{
|
||||
event = "before-sleep";
|
||||
command = "${config.programs.swaylock.package}/bin/swaylock* -f";
|
||||
command = "${noctalia} lockScreen toggle";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{pkgs, ...}: {
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
package = pkgs.swaylock-effects;
|
||||
settings = {
|
||||
screenshots = true;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ _: {
|
|||
};
|
||||
};
|
||||
services.swaync = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
settings = {
|
||||
positionX = "right";
|
||||
positionY = "top";
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ _:
|
|||
#in
|
||||
{
|
||||
services.swayosd = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
#stylePath = theme;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
_: {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
#enable = true;
|
||||
systemd.enable = true;
|
||||
style = ''
|
||||
* {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
_: {
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
settings = {
|
||||
insensitive = true;
|
||||
allow_images = true;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
opacity = {
|
||||
desktop = 1.0;
|
||||
applications = 1.0;
|
||||
terminal = 1.0;
|
||||
terminal = 0.9;
|
||||
popups = 0.8;
|
||||
};
|
||||
fonts = {
|
||||
|
|
@ -38,6 +38,6 @@
|
|||
};
|
||||
autoEnable = true;
|
||||
polarity = "light";
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/monokai.yaml";
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/dracula.yaml";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,8 +44,6 @@ _: {
|
|||
"display"
|
||||
"terminal"
|
||||
"break"
|
||||
"chassis"
|
||||
"board"
|
||||
{
|
||||
type = "cpu";
|
||||
showPeCoreCount = true;
|
||||
|
|
@ -65,35 +63,12 @@ _: {
|
|||
"break"
|
||||
"disk"
|
||||
"zpool"
|
||||
{
|
||||
type = "physicaldisk";
|
||||
temp = true;
|
||||
}
|
||||
"lm"
|
||||
"wm"
|
||||
"theme"
|
||||
"wmtheme"
|
||||
"icons"
|
||||
"font"
|
||||
"cursor"
|
||||
"terminal"
|
||||
"terminalfont"
|
||||
"terminalsize"
|
||||
"terminaltheme"
|
||||
"break"
|
||||
{
|
||||
type = "weather";
|
||||
timeout = 1000;
|
||||
}
|
||||
"dns"
|
||||
"break"
|
||||
"break"
|
||||
"bluetooth"
|
||||
"break"
|
||||
"player"
|
||||
"media"
|
||||
"break"
|
||||
"colors"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
|||
BIN
home/user/avatar.jpg
Normal file
BIN
home/user/avatar.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
Loading…
Add table
Add a link
Reference in a new issue