mirror of
https://github.com/anotherhadi/nixy.git
synced 2026-04-03 19:42:10 +02:00
v4.0.0
Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
49
home/system/caelestia-shell/appearance.nix
Normal file
49
home/system/caelestia-shell/appearance.nix
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
rounding = config.theme.rounding + config.theme.gaps-out;
|
||||
inherit (config.stylix) fonts;
|
||||
in {
|
||||
home.packages = with pkgs; [
|
||||
papirus-icon-theme
|
||||
];
|
||||
|
||||
programs.caelestia.settings = {
|
||||
paths.sessionGif = ./session-gif-hacker-cat.gif;
|
||||
background.enabled = false;
|
||||
appearance = {
|
||||
transparency = {
|
||||
enable = true;
|
||||
base = 0.85;
|
||||
layers = 0.4;
|
||||
};
|
||||
font.family = {
|
||||
material = "Material Symbols Rounded";
|
||||
mono = fonts.monospace.name;
|
||||
sans = fonts.sansSerif.name;
|
||||
};
|
||||
};
|
||||
utilities = {
|
||||
enabled = true;
|
||||
maxToasts = 4;
|
||||
toasts = {
|
||||
audioInputChanged = true;
|
||||
audioOutputChanged = true;
|
||||
capsLockChanged = false;
|
||||
chargingChanged = true;
|
||||
configLoaded = false;
|
||||
dndChanged = true;
|
||||
gameModeChanged = true;
|
||||
numLockChanged = false;
|
||||
nowPlaying = false;
|
||||
kbLayoutChanged = false;
|
||||
};
|
||||
};
|
||||
border = {
|
||||
inherit rounding;
|
||||
thickness = 8;
|
||||
};
|
||||
};
|
||||
}
|
||||
69
home/system/caelestia-shell/bar.nix
Normal file
69
home/system/caelestia-shell/bar.nix
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
programs.caelestia.settings.bar = {
|
||||
clock.showIcon = false;
|
||||
popouts.activeWindow = false;
|
||||
persistent = true;
|
||||
status = {
|
||||
showBattery = true;
|
||||
showMicrophone = false;
|
||||
showLockStatus = false;
|
||||
showBluetooth = true;
|
||||
showAudio = true;
|
||||
showKbLayout = false;
|
||||
showNetwork = true;
|
||||
};
|
||||
workspaces = {
|
||||
activeIndicator = true;
|
||||
activeLabel = " ";
|
||||
activeTrail = false;
|
||||
label = " ";
|
||||
occupiedBg = true;
|
||||
occupiedLabel = " ";
|
||||
rounded = true;
|
||||
showWindows = false;
|
||||
shown = 5;
|
||||
};
|
||||
entries = [
|
||||
{
|
||||
id = "logo";
|
||||
enabled = true;
|
||||
}
|
||||
{
|
||||
id = "workspaces";
|
||||
enabled = true;
|
||||
}
|
||||
{
|
||||
id = "spacer";
|
||||
enabled = true;
|
||||
}
|
||||
{
|
||||
id = "activeWindow";
|
||||
enabled = true;
|
||||
}
|
||||
{
|
||||
id = "spacer";
|
||||
enabled = true;
|
||||
}
|
||||
{
|
||||
id = "tray";
|
||||
enabled = true;
|
||||
}
|
||||
{
|
||||
id = "clock";
|
||||
enabled = true;
|
||||
}
|
||||
{
|
||||
id = "statusIcons";
|
||||
enabled = true;
|
||||
}
|
||||
{
|
||||
id = "power";
|
||||
enabled = true;
|
||||
}
|
||||
];
|
||||
tray = {
|
||||
background = false;
|
||||
recolour = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
58
home/system/caelestia-shell/bindings.nix
Normal file
58
home/system/caelestia-shell/bindings.nix
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
bindin = [
|
||||
# Launcher
|
||||
"$mod, mouse:272, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:273, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:274, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:275, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:276, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:277, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse_up, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse_down, global, caelestia:launcherInterrupt"
|
||||
];
|
||||
bind = [
|
||||
# Launcher
|
||||
"$mod, SPACE, global, caelestia:launcher"
|
||||
"$mod, X, global, caelestia:session" # Powermenu
|
||||
|
||||
# Misc
|
||||
"$mod, L, global, caelestia:lock"
|
||||
"$mod, N, exec, caelestia shell drawers toggle sidebar"
|
||||
|
||||
# Utilities
|
||||
"$mod+Shift, SPACE, exec, caelestia shell gameMode toggle" # Toggle Focus/Game mode
|
||||
"$mod+Shift, S, global, caelestia:screenshotFreeze" # Capture region (freeze)
|
||||
"$mod+Shift+Alt, S, global, caelestia:screenshot" # Capture region
|
||||
"$mod+Alt, R, exec, caelestia record -s" # Record screen with sound
|
||||
"Ctrl+Alt, R, exec, caelestia record" # Record screen
|
||||
"$mod+Shift+Alt, R, exec, caelestia record -r" # Record region
|
||||
|
||||
"$mod+Shift, E, exec, pkill fuzzel || caelestia emoji -p"
|
||||
];
|
||||
bindl = [
|
||||
# Brightness
|
||||
", XF86MonBrightnessUp, global, caelestia:brightnessUp"
|
||||
", XF86MonBrightnessDown, global, caelestia:brightnessDown"
|
||||
"$mod, F2, exec, nightshift-toggle"
|
||||
"$mod, F3, exec, nightshift-toggle"
|
||||
|
||||
# Media
|
||||
", XF86AudioPlay, global, caelestia:mediaToggle"
|
||||
", XF86AudioPause, global, caelestia:mediaToggle"
|
||||
", XF86AudioNext, global, caelestia:mediaNext"
|
||||
", XF86AudioPrev, global, caelestia:mediaPrev"
|
||||
", XF86AudioStop, global, caelestia:mediaStop"
|
||||
|
||||
# Sound
|
||||
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
|
||||
# Utilities
|
||||
", Print, exec, caelestia screenshot" # Full screen capture > clipboard
|
||||
];
|
||||
bindle = [
|
||||
", XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
", XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
];
|
||||
};
|
||||
}
|
||||
62
home/system/caelestia-shell/default.nix
Normal file
62
home/system/caelestia-shell/default.nix
Normal file
@@ -0,0 +1,62 @@
|
||||
# Caelestia Shell Home Manager Configuration
|
||||
# See https://github.com/caelestia-dots/shell
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
inputs.caelestia-shell.homeManagerModules.default
|
||||
./bindings.nix
|
||||
./bar.nix
|
||||
./launcher.nix
|
||||
./appearance.nix
|
||||
./scheme.nix
|
||||
];
|
||||
|
||||
programs.caelestia = {
|
||||
enable = true;
|
||||
systemd.enable = false;
|
||||
settings = {
|
||||
services.weatherLocation = "Paris";
|
||||
general = {
|
||||
apps = {
|
||||
terminal = ["ghostty"];
|
||||
audio = ["pavucontrol"];
|
||||
explorer = ["thunar"];
|
||||
};
|
||||
idle = {
|
||||
timeouts = [];
|
||||
};
|
||||
};
|
||||
};
|
||||
cli = {
|
||||
enable = true;
|
||||
settings.theme = {
|
||||
enableTerm = false;
|
||||
enableDiscord = false;
|
||||
enableSpicetify = false;
|
||||
enableBtop = false;
|
||||
enableCava = false;
|
||||
enableHypr = false;
|
||||
enableGtk = false;
|
||||
enableQt = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
gpu-screen-recorder
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland.settings.exec-once = [
|
||||
"uwsm app -- caelestia resizer -d"
|
||||
"uwsm app -- caelestia shell -d"
|
||||
"caelestia scheme set -n custom"
|
||||
];
|
||||
|
||||
services.cliphist = {
|
||||
enable = true;
|
||||
allowImages = true;
|
||||
};
|
||||
}
|
||||
124
home/system/caelestia-shell/launcher.nix
Normal file
124
home/system/caelestia-shell/launcher.nix
Normal file
@@ -0,0 +1,124 @@
|
||||
{
|
||||
programs.caelestia.settings = {
|
||||
session.commands = {
|
||||
logout = ["loginctl" "terminate-user" ""];
|
||||
shutdown = ["systemctl" "poweroff"];
|
||||
hibernate = ["systemctl" "hibernate"];
|
||||
reboot = ["systemctl" "reboot"];
|
||||
};
|
||||
launcher = {
|
||||
actionPrefix = "/";
|
||||
actions = [
|
||||
{
|
||||
name = "Calculator";
|
||||
icon = "calculate";
|
||||
description = "Do simple math equations (powered by Qalc)";
|
||||
command = ["autocomplete" "calc"];
|
||||
enabled = true;
|
||||
dangerous = false;
|
||||
}
|
||||
{
|
||||
name = "Shutdown";
|
||||
icon = "power_settings_new";
|
||||
description = "Shutdown the system";
|
||||
command = ["systemctl" "poweroff"];
|
||||
enabled = true;
|
||||
dangerous = true;
|
||||
}
|
||||
{
|
||||
name = "Reboot";
|
||||
icon = "cached";
|
||||
description = "Reboot the system";
|
||||
command = ["systemctl" "reboot"];
|
||||
enabled = true;
|
||||
dangerous = true;
|
||||
}
|
||||
{
|
||||
name = "Logout";
|
||||
icon = "exit_to_app";
|
||||
description = "Log out of the current session";
|
||||
command = ["loginctl" "terminate-user" ""];
|
||||
enabled = true;
|
||||
dangerous = true;
|
||||
}
|
||||
{
|
||||
name = "Lock";
|
||||
icon = "lock";
|
||||
description = "Lock the current session";
|
||||
command = ["loginctl" "lock-session"];
|
||||
enabled = true;
|
||||
dangerous = false;
|
||||
}
|
||||
{
|
||||
name = "Sleep";
|
||||
icon = "bedtime";
|
||||
description = "Suspend then hibernate";
|
||||
command = ["systemctl" "suspend-then-hibernate"];
|
||||
enabled = true;
|
||||
dangerous = false;
|
||||
}
|
||||
{
|
||||
name = "Restart caelestia";
|
||||
icon = "cached";
|
||||
description = "Restart caelestia";
|
||||
command = ["hyprctl" "dispatch" "exec" "caelestia-shell kill | sleep 1 | caelestia-shell"];
|
||||
enabled = true;
|
||||
dangerous = false;
|
||||
}
|
||||
{
|
||||
name = "Emoji Picker";
|
||||
icon = "mood";
|
||||
description = "Toggle the emoji picker";
|
||||
command = ["caelestia" "emoji" "-p"];
|
||||
enabled = true;
|
||||
dangerous = false;
|
||||
}
|
||||
{
|
||||
name = "Clipboard History";
|
||||
icon = "content_paste";
|
||||
description = "Toggle the clipboard history";
|
||||
command = ["caelestia" "clipboard"];
|
||||
enabled = true;
|
||||
dangerous = false;
|
||||
}
|
||||
{
|
||||
name = "Delete from Clipboard History";
|
||||
icon = "content_paste_off";
|
||||
description = "Delete a line from the clipboard history";
|
||||
command = ["caelestia" "clipboard"];
|
||||
enabled = true;
|
||||
dangerous = false;
|
||||
}
|
||||
{
|
||||
name = "Night Shift";
|
||||
icon = "moon_stars";
|
||||
description = "Toggle Night Shift, the blue light filter";
|
||||
command = ["nightshift-toggle"];
|
||||
enabled = true;
|
||||
dangerous = false;
|
||||
}
|
||||
{
|
||||
name = "Hyprpicker";
|
||||
icon = "colorize";
|
||||
description = "Pick an hex color";
|
||||
command = ["hyprpicker" "-a"];
|
||||
enabled = true;
|
||||
dangerous = false;
|
||||
}
|
||||
];
|
||||
dragThreshold = 50;
|
||||
enableDangerousActions = false;
|
||||
maxShown = 7;
|
||||
specialPrefix = "@";
|
||||
useFuzzy = {
|
||||
apps = false;
|
||||
actions = false;
|
||||
schemes = false;
|
||||
variants = false;
|
||||
wallpapers = false;
|
||||
};
|
||||
showOnHover = false;
|
||||
hiddenApps = [];
|
||||
};
|
||||
};
|
||||
}
|
||||
132
home/system/caelestia-shell/scheme.nix
Normal file
132
home/system/caelestia-shell/scheme.nix
Normal file
@@ -0,0 +1,132 @@
|
||||
# This Nix module customizes the color scheme of the Caelestia CLI application using the Stylix base16 color palette.
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
colors = config.lib.stylix.colors;
|
||||
|
||||
customSchemeFile = pkgs.writeText "custom-dark.txt" ''
|
||||
primary_paletteKeyColor ${colors.base0D}
|
||||
secondary_paletteKeyColor ${colors.base04}
|
||||
tertiary_paletteKeyColor ${colors.base08}
|
||||
neutral_paletteKeyColor ${colors.base03}
|
||||
neutral_variant_paletteKeyColor ${colors.base03}
|
||||
background ${colors.base00}
|
||||
onBackground ${colors.base05}
|
||||
surface ${colors.base00}
|
||||
surfaceDim ${colors.base00}
|
||||
surfaceBright ${colors.base02}
|
||||
surfaceContainerLowest ${colors.base01}
|
||||
surfaceContainerLow ${colors.base01}
|
||||
surfaceContainer ${colors.base01}
|
||||
surfaceContainerHigh ${colors.base02}
|
||||
surfaceContainerHighest ${colors.base02}
|
||||
onSurface ${colors.base05}
|
||||
surfaceVariant ${colors.base02}
|
||||
onSurfaceVariant ${colors.base04}
|
||||
inverseSurface ${colors.base05}
|
||||
inverseOnSurface ${colors.base00}
|
||||
outline ${colors.base03}
|
||||
outlineVariant ${colors.base02}
|
||||
shadow ${colors.base00}
|
||||
scrim ${colors.base00}
|
||||
surfaceTint ${colors.base0D}
|
||||
primary ${colors.base0D}
|
||||
onPrimary ${colors.base00}
|
||||
primaryContainer ${colors.base0D}
|
||||
onPrimaryContainer ${colors.base05}
|
||||
inversePrimary ${colors.base0D}
|
||||
secondary ${colors.base0C}
|
||||
onSecondary ${colors.base00}
|
||||
secondaryContainer ${colors.base02}
|
||||
onSecondaryContainer ${colors.base0C}
|
||||
tertiary ${colors.base08}
|
||||
onTertiary ${colors.base00}
|
||||
tertiaryContainer ${colors.base08}
|
||||
onTertiaryContainer ${colors.base00}
|
||||
error ${colors.base08}
|
||||
onError ${colors.base00}
|
||||
errorContainer ${colors.base08}
|
||||
onErrorContainer ${colors.base05}
|
||||
primaryFixed ${colors.base0D}
|
||||
primaryFixedDim ${colors.base0D}
|
||||
onPrimaryFixed ${colors.base00}
|
||||
onPrimaryFixedVariant ${colors.base00}
|
||||
secondaryFixed ${colors.base0C}
|
||||
secondaryFixedDim ${colors.base0C}
|
||||
onSecondaryFixed ${colors.base00}
|
||||
onSecondaryFixedVariant ${colors.base02}
|
||||
tertiaryFixed ${colors.base08}
|
||||
tertiaryFixedDim ${colors.base08}
|
||||
onTertiaryFixed ${colors.base00}
|
||||
onTertiaryFixedVariant ${colors.base00}
|
||||
term0 ${colors.base00}
|
||||
term1 ${colors.base08}
|
||||
term2 ${colors.base0B}
|
||||
term3 ${colors.base0A}
|
||||
term4 ${colors.base0D}
|
||||
term5 ${colors.base0E}
|
||||
term6 ${colors.base0C}
|
||||
term7 ${colors.base05}
|
||||
term8 ${colors.base03}
|
||||
term9 ${colors.base08}
|
||||
term10 ${colors.base0B}
|
||||
term11 ${colors.base0A}
|
||||
term12 ${colors.base0D}
|
||||
term13 ${colors.base0E}
|
||||
term14 ${colors.base0C}
|
||||
term15 ${colors.base07}
|
||||
rosewater ${colors.base06}
|
||||
flamingo ${colors.base0F}
|
||||
pink ${colors.base0E}
|
||||
mauve ${colors.base0D}
|
||||
red ${colors.base08}
|
||||
maroon ${colors.base08}
|
||||
peach ${colors.base09}
|
||||
yellow ${colors.base0A}
|
||||
green ${colors.base0B}
|
||||
teal ${colors.base0C}
|
||||
sky ${colors.base0C}
|
||||
sapphire ${colors.base0C}
|
||||
blue ${colors.base0D}
|
||||
lavender ${colors.base0D}
|
||||
klink ${colors.base0D}
|
||||
klinkSelection ${colors.base0D}
|
||||
kvisited ${colors.base0E}
|
||||
kvisitedSelection ${colors.base0E}
|
||||
knegative ${colors.base08}
|
||||
knegativeSelection ${colors.base08}
|
||||
kneutral ${colors.base0A}
|
||||
kneutralSelection ${colors.base0A}
|
||||
kpositive ${colors.base0B}
|
||||
kpositiveSelection ${colors.base0B}
|
||||
text ${colors.base05}
|
||||
subtext1 ${colors.base04}
|
||||
subtext0 ${colors.base03}
|
||||
overlay2 ${colors.base03}
|
||||
overlay1 ${colors.base03}
|
||||
overlay0 ${colors.base02}
|
||||
surface2 ${colors.base02}
|
||||
surface1 ${colors.base01}
|
||||
surface0 ${colors.base01}
|
||||
base ${colors.base00}
|
||||
mantle ${colors.base00}
|
||||
crust ${colors.base00}
|
||||
success ${colors.base0B}
|
||||
onSuccess ${colors.base00}
|
||||
successContainer ${colors.base0B}
|
||||
onSuccessContainer ${colors.base05}
|
||||
'';
|
||||
|
||||
customCli = inputs.caelestia-cli.packages.${pkgs.stdenv.hostPlatform.system}.default.overrideAttrs (oldAttrs: {
|
||||
postUnpack = ''
|
||||
mkdir -p $sourceRoot/src/caelestia/data/schemes/custom/main
|
||||
cp ${customSchemeFile} $sourceRoot/src/caelestia/data/schemes/custom/main/dark.txt
|
||||
echo "Custom scheme added to source"
|
||||
'';
|
||||
});
|
||||
in {
|
||||
programs.caelestia.cli.package = customCli;
|
||||
}
|
||||
BIN
home/system/caelestia-shell/session-gif-hacker-cat.gif
Normal file
BIN
home/system/caelestia-shell/session-gif-hacker-cat.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 51 KiB |
@@ -1,32 +0,0 @@
|
||||
# Hypridle is a daemon that listens for user activity and runs commands when the user is idle.
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
ignore_dbus_inhibit = false;
|
||||
lock_cmd = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
|
||||
before_sleep_cmd = "loginctl lock-session";
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
};
|
||||
|
||||
listener = [
|
||||
{
|
||||
timeout = 600;
|
||||
on-timeout = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
|
||||
}
|
||||
|
||||
{
|
||||
timeout = 660;
|
||||
on-timeout = "systemctl suspend";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
systemd.user.services.hypridle.Unit.After =
|
||||
lib.mkForce "graphical-session.target";
|
||||
}
|
||||
@@ -1,20 +1,19 @@
|
||||
{pkgs, ...}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
"$mod" = "SUPER";
|
||||
"$shiftMod" = "SUPER_SHIFT";
|
||||
|
||||
bind =
|
||||
[
|
||||
"$mod,RETURN, exec, uwsm app -- ${pkgs.ghostty}/bin/ghostty" # Ghostty (terminal)
|
||||
"$mod,E, exec, uwsm app -- ${pkgs.xfce.thunar}/bin/thunar" # Thunar
|
||||
"$mod,B, exec, uwsm app -- ${pkgs.brave}/bin/brave" # Brave Browser
|
||||
"$mod,B, exec, uwsm app -- ${pkgs.vivaldi}/bin/vivaldi" # Browser (Vivaldi)
|
||||
"$mod,K, exec, uwsm app -- ${pkgs.proton-pass}/bin/proton-pass" # Proton Pass
|
||||
"$mod,M, exec, uwsm app -- ${pkgs.protonmail-desktop}/bin/proton-mail" # Proton Mail
|
||||
"$mod,V, exec, uwsm app -- ${pkgs.protonvpn-gui}/bin/protonvpn-app" # Proton VPN
|
||||
"$mod,A, exec, uwsm app -- ${pkgs.proton-authenticator}/bin/proton-authenticator" # Proton Authenticator
|
||||
"$mod,L, exec, uwsm app -- ${pkgs.hyprlock}/bin/hyprlock" # Lock
|
||||
"$mod,SPACE, exec, vicinae toggle" # Launcher
|
||||
# "$mod,SPACE, exec, menu" # Launcher
|
||||
"$mod,X, exec, powermenu" # Powermenu
|
||||
|
||||
"$shiftMod,SPACE, exec, hyprfocus-toggle" # Toggle HyprFocus
|
||||
"$mod,A, exec, uwsm app -- env WEBKIT_DISABLE_COMPOSITING_MODE=1 ${pkgs.proton-authenticator}/bin/proton-authenticator" # Proton Auth
|
||||
"$mod,M, exec, uwsm app -- ${pkgs.vivaldi}/bin/vivaldi --profile-directory=Default --app-id=jnpecgipniidlgicjocehkhajgdnjekh" # Proton Mail (PWA)
|
||||
"$mod,C, exec, uwsm app -- ${pkgs.vivaldi}/bin/vivaldi --profile-directory=Default --app-id=ojibjkjikcpjonjjngfkegflhmffeemk" # Proton Calendar (PWA)
|
||||
"$mod,I, exec, uwsm app -- ${pkgs.vivaldi}/bin/vivaldi --profile-directory=Default --app-id=lcfjlhjhpmdjimnbkdfjnkojodddgfmd" # Proton Lumo (PWA)
|
||||
|
||||
"$mod,Q, killactive," # Close window
|
||||
"$mod,T, togglefloating," # Toggle Floating
|
||||
@@ -27,15 +26,6 @@
|
||||
"$shiftMod,down, focusmonitor, 1" # Focus next monitor
|
||||
"$shiftMod,left, layoutmsg, addmaster" # Add to master
|
||||
"$shiftMod,right, layoutmsg, removemaster" # Remove from master
|
||||
|
||||
"$mod,PRINT, exec, screenshot region" # Screenshot region
|
||||
",PRINT, exec, screenshot monitor" # Screenshot monitor
|
||||
"$shiftMod,PRINT, exec, screenshot window" # Screenshot window
|
||||
"ALT,PRINT, exec, screenshot region swappy" # Screenshot region then edit
|
||||
|
||||
"$shiftMod,T, exec, hyprpanel-toggle" # Toggle hyprpanel
|
||||
"$shiftMod,F2, exec, night-shift" # Toggle night shift
|
||||
"$shiftMod,F3, exec, night-shift" # Toggle night shift
|
||||
]
|
||||
++ (builtins.concatLists (builtins.genList (i: let
|
||||
ws = i + 1;
|
||||
@@ -49,20 +39,5 @@
|
||||
"$mod,mouse:272, movewindow" # Move Window (mouse)
|
||||
"$mod,R, resizewindow" # Resize Window (mouse)
|
||||
];
|
||||
|
||||
bindl = [
|
||||
",XF86AudioMute, exec, sound-toggle" # Toggle Mute
|
||||
",XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause" # Play/Pause Song
|
||||
",XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next" # Next Song
|
||||
",XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous" # Previous Song
|
||||
",switch:Lid Switch, exec, ${pkgs.hyprlock}/bin/hyprlock" # Lock when closing Lid
|
||||
];
|
||||
|
||||
bindle = [
|
||||
",XF86AudioRaiseVolume, exec, sound-up" # Sound Up
|
||||
",XF86AudioLowerVolume, exec, sound-down" # Sound Down
|
||||
",XF86MonBrightnessUp, exec, brightness-up" # Brightness Up
|
||||
",XF86MonBrightnessDown, exec, brightness-down" # Brightness Down
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
rounding = config.theme.rounding;
|
||||
blur = config.theme.blur;
|
||||
keyboardLayout = config.var.keyboardLayout;
|
||||
background = "rgb(" + config.lib.stylix.colors.base00 + ")";
|
||||
background = "rgba(" + config.lib.stylix.colors.base00 + "77)";
|
||||
in {
|
||||
imports = [
|
||||
./animations.nix
|
||||
@@ -27,13 +27,14 @@ in {
|
||||
qt6.qtwayland
|
||||
libsForQt5.qt5ct
|
||||
qt6Packages.qt6ct
|
||||
hyprland-qtutils
|
||||
adw-gtk3
|
||||
hyprshot
|
||||
hyprpicker
|
||||
swappy
|
||||
imv
|
||||
wf-recorder
|
||||
wlr-randr
|
||||
wl-clipboard
|
||||
brightnessctl
|
||||
gnome-themes-extra
|
||||
libva
|
||||
@@ -58,12 +59,8 @@ in {
|
||||
portalPackage = null;
|
||||
|
||||
settings = {
|
||||
"$mod" = "SUPER";
|
||||
"$shiftMod" = "SUPER_SHIFT";
|
||||
|
||||
exec-once = [
|
||||
"dbus-update-activation-environment --systemd --all &"
|
||||
"systemctl --user enable --now hyprpaper.service &"
|
||||
];
|
||||
|
||||
monitor = [
|
||||
@@ -138,6 +135,16 @@ in {
|
||||
|
||||
gesture = "3, horizontal, workspace";
|
||||
|
||||
windowrule = [
|
||||
"match:class proton-authenticator, float on"
|
||||
"match:class proton-authenticator, suppress_event maximize"
|
||||
"match:class proton-authenticator, center on"
|
||||
"match:class proton-authenticator, size 500 400"
|
||||
"match:class protonvpn-app, float on"
|
||||
"match:class protonvpn-app, center on"
|
||||
"match:class protonvpn-app, size 500 400"
|
||||
];
|
||||
|
||||
misc = {
|
||||
vfr = true;
|
||||
disable_hyprland_logo = true;
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
alert-when-low-battery = false;
|
||||
keyboard-backlight = pkgs.writeShellScriptBin "keyboard-backlight" ''
|
||||
function set_keyboard_backlight {
|
||||
local color=$1
|
||||
@@ -15,6 +16,9 @@
|
||||
}
|
||||
state="white"
|
||||
set_keyboard_backlight ${config.lib.stylix.colors.base0D}
|
||||
if [ "${toString alert-when-low-battery}" = "false" ]; then
|
||||
exit 0
|
||||
fi
|
||||
while true; do
|
||||
BATTERY_LEVEL=$(cat /sys/class/power_supply/BAT*/capacity)
|
||||
IS_CHARGING=$(cat /sys/class/power_supply/BAT*/status)
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
# Hyprlock is a lockscreen for Hyprland
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
foreground = "rgba(${config.theme.textColorOnWallpaper}ee)";
|
||||
font = config.stylix.fonts.serif.name;
|
||||
in {
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
ignore_empty_input = true;
|
||||
hide_cursor = true;
|
||||
};
|
||||
|
||||
background = { brightness = 0.7172; };
|
||||
|
||||
label = [
|
||||
{
|
||||
# Day-Month-Date
|
||||
monitor = "";
|
||||
text = ''cmd[update:1000] echo -e "$(date +"%A, %B %d")"'';
|
||||
color = foreground;
|
||||
font_size = 28;
|
||||
font_family = font + " Bold";
|
||||
position = "0, 490";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
# Time
|
||||
{
|
||||
monitor = "";
|
||||
text = ''cmd[update:1000] echo "<span>$(date +"%I:%M")</span>"'';
|
||||
color = foreground;
|
||||
font_size = 160;
|
||||
font_family = "steelfish outline regular";
|
||||
position = "0, 370";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
# USER
|
||||
{
|
||||
monitor = "";
|
||||
text = " $USER";
|
||||
color = foreground;
|
||||
font_size = 18;
|
||||
font_family = font + " Bold";
|
||||
position = "0, -180";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
];
|
||||
|
||||
# INPUT FIELD
|
||||
input-field = lib.mkForce {
|
||||
size = "300, 60";
|
||||
outline_thickness = 2;
|
||||
dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true;
|
||||
outer_color = "rgba(25, 25, 25, 0)";
|
||||
inner_color = "rgba(25, 25, 25, 0.1)";
|
||||
font_color = foreground;
|
||||
fade_on_empty = false;
|
||||
font_family = font + " Bold";
|
||||
placeholder_text = "<i>🔒 Enter Password</i>";
|
||||
position = "0, -250";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,267 +0,0 @@
|
||||
# Hyprpanel is the bar on top of the screen
|
||||
# Display information like workspaces, battery, wifi, ...
|
||||
{config, ...}: let
|
||||
transparentButtons = config.theme.bar.transparentButtons;
|
||||
|
||||
accent = "#${config.lib.stylix.colors.base0D}";
|
||||
accent-alt = "#${config.lib.stylix.colors.base03}";
|
||||
background = "#${config.lib.stylix.colors.base00}";
|
||||
background-alt = "#${config.lib.stylix.colors.base01}";
|
||||
foreground = "#${config.lib.stylix.colors.base05}";
|
||||
foregroundOnWallpaper = "#${config.theme.textColorOnWallpaper}";
|
||||
font = "${config.stylix.fonts.serif.name}";
|
||||
fontSizeForHyprpanel = "${toString config.stylix.fonts.sizes.desktop}px";
|
||||
|
||||
rounding = config.theme.rounding;
|
||||
border-size = config.theme.border-size;
|
||||
|
||||
gaps-out = config.theme.gaps-out;
|
||||
gaps-in = config.theme.gaps-in;
|
||||
|
||||
floating = config.theme.bar.floating;
|
||||
transparent = config.theme.bar.transparent;
|
||||
position = config.theme.bar.position; # "top" ou "bottom"
|
||||
|
||||
notificationOpacity = 90;
|
||||
|
||||
location = config.var.location;
|
||||
|
||||
homeDir = "/home/${config.var.username}";
|
||||
in {
|
||||
wayland.windowManager.hyprland.settings.exec-once = ["hyprpanel"];
|
||||
|
||||
programs.hyprpanel = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
bar.layouts = {
|
||||
"*" = {
|
||||
left = ["dashboard" "workspaces" "windowtitle"];
|
||||
middle = ["media" "cava"];
|
||||
right = [
|
||||
"systray"
|
||||
"volume"
|
||||
"bluetooth"
|
||||
"battery"
|
||||
"network"
|
||||
"clock"
|
||||
"notifications"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
theme.font.name = font;
|
||||
theme.font.size = fontSizeForHyprpanel;
|
||||
|
||||
theme.bar.outer_spacing =
|
||||
if floating && transparent
|
||||
then "0px"
|
||||
else "8px";
|
||||
theme.bar.buttons.y_margins =
|
||||
if floating && transparent
|
||||
then "0px"
|
||||
else "8px";
|
||||
theme.bar.buttons.spacing = "0.3em";
|
||||
theme.bar.buttons.radius =
|
||||
(
|
||||
if transparent
|
||||
then toString rounding
|
||||
else toString (rounding - 8)
|
||||
)
|
||||
+ "px";
|
||||
theme.bar.floating = floating;
|
||||
theme.bar.buttons.padding_x = "0.8rem";
|
||||
theme.bar.buttons.padding_y = "0.4rem";
|
||||
|
||||
theme.bar.margin_top =
|
||||
(
|
||||
if position == "top"
|
||||
then toString (gaps-in * 2)
|
||||
else "0"
|
||||
)
|
||||
+ "px";
|
||||
theme.bar.margin_bottom =
|
||||
(
|
||||
if position == "top"
|
||||
then "0"
|
||||
else toString (gaps-in * 2)
|
||||
)
|
||||
+ "px";
|
||||
theme.bar.margin_sides = toString gaps-out + "px";
|
||||
theme.bar.border_radius = toString rounding + "px";
|
||||
theme.bar.transparent = transparent;
|
||||
theme.bar.location = position;
|
||||
theme.bar.dropdownGap = "4.5em";
|
||||
theme.bar.menus.shadow =
|
||||
if transparent
|
||||
then "0 0 0 0"
|
||||
else "0px 0px 3px 1px #16161e";
|
||||
theme.bar.buttons.style = "default";
|
||||
theme.bar.buttons.monochrome = true;
|
||||
theme.bar.menus.monochrome = true;
|
||||
theme.bar.menus.card_radius = toString rounding + "px";
|
||||
theme.bar.menus.border.size = toString border-size + "px";
|
||||
theme.bar.menus.border.radius = toString rounding + "px";
|
||||
theme.bar.menus.menu.media.card.tint = 90;
|
||||
|
||||
bar.launcher.icon = "";
|
||||
bar.workspaces.show_numbered = false;
|
||||
bar.workspaces.workspaces = 5;
|
||||
bar.workspaces.numbered_active_indicator = "color";
|
||||
bar.workspaces.monitorSpecific = false;
|
||||
bar.workspaces.applicationIconEmptyWorkspace = "";
|
||||
bar.workspaces.showApplicationIcons = true;
|
||||
bar.workspaces.showWsIcons = true;
|
||||
|
||||
bar.windowtitle.label = true;
|
||||
bar.volume.label = false;
|
||||
bar.network.truncation_size = 12;
|
||||
bar.bluetooth.label = false;
|
||||
bar.clock.format = "%a %b %d %I:%M %p";
|
||||
bar.notifications.show_total = true;
|
||||
bar.media.show_active_only = true;
|
||||
|
||||
bar.customModules.updates.pollingInterval = 1440000;
|
||||
bar.customModules.cava.showIcon = false;
|
||||
bar.customModules.cava.stereo = true;
|
||||
bar.customModules.cava.showActiveOnly = true;
|
||||
|
||||
notifications.position = "top right";
|
||||
notifications.showActionsOnHover = true;
|
||||
theme.notification.opacity = notificationOpacity;
|
||||
theme.notification.enableShadow = true;
|
||||
theme.notification.border_radius = toString rounding + "px";
|
||||
|
||||
theme.osd.enable = true;
|
||||
theme.osd.orientation = "vertical";
|
||||
theme.osd.location = "left";
|
||||
theme.osd.radius = toString rounding + "px";
|
||||
theme.osd.margins = "0px 0px 0px 10px";
|
||||
theme.osd.muted_zero = true;
|
||||
|
||||
menus.clock.weather.location = location;
|
||||
menus.clock.weather.unit = "metric";
|
||||
menus.dashboard.powermenu.confirmation = false;
|
||||
menus.dashboard.powermenu.avatar.image = "~/.face.icon";
|
||||
|
||||
menus.dashboard.shortcuts.left.shortcut1.icon = "";
|
||||
menus.dashboard.shortcuts.left.shortcut1.command = "zen";
|
||||
menus.dashboard.shortcuts.left.shortcut1.tooltip = "Zen";
|
||||
menus.dashboard.shortcuts.left.shortcut2.icon = "";
|
||||
menus.dashboard.shortcuts.left.shortcut2.command = "caffeine";
|
||||
menus.dashboard.shortcuts.left.shortcut2.tooltip = "Caffeine";
|
||||
menus.dashboard.shortcuts.left.shortcut3.icon = "";
|
||||
menus.dashboard.shortcuts.left.shortcut3.command = "night-shift";
|
||||
menus.dashboard.shortcuts.left.shortcut3.tooltip = "Night-shift";
|
||||
menus.dashboard.shortcuts.left.shortcut4.icon = "";
|
||||
menus.dashboard.shortcuts.left.shortcut4.command = "menu";
|
||||
menus.dashboard.shortcuts.left.shortcut4.tooltip = "Search Apps";
|
||||
|
||||
menus.dashboard.shortcuts.right.shortcut1.icon = "";
|
||||
menus.dashboard.shortcuts.right.shortcut1.command = "hyprpicker -a";
|
||||
menus.dashboard.shortcuts.right.shortcut1.tooltip = "Color Picker";
|
||||
|
||||
menus.dashboard.shortcuts.right.shortcut3.icon = "";
|
||||
menus.dashboard.shortcuts.right.shortcut3.command = "screenshot region swappy";
|
||||
menus.dashboard.shortcuts.right.shortcut3.tooltip = "Screenshot";
|
||||
|
||||
menus.dashboard.directories.left.directory1.label = " Home";
|
||||
menus.dashboard.directories.left.directory1.command = "xdg-open ${homeDir}";
|
||||
|
||||
menus.dashboard.directories.left.directory2.label = " Documents";
|
||||
menus.dashboard.directories.left.directory2.command = "xdg-open ${homeDir}/Documents";
|
||||
|
||||
menus.dashboard.directories.left.directory3.label = " Downloads";
|
||||
menus.dashboard.directories.left.directory3.command = "xdg-open ${homeDir}/Downloads";
|
||||
|
||||
menus.dashboard.directories.right.directory1.label = " Desktop";
|
||||
menus.dashboard.directories.right.directory1.command = "xdg-open ${homeDir}/Desktop";
|
||||
|
||||
menus.dashboard.directories.right.directory2.label = " Videos";
|
||||
menus.dashboard.directories.right.directory2.command = "xdg-open ${homeDir}/Videos";
|
||||
|
||||
menus.dashboard.directories.right.directory3.label = " Pictures";
|
||||
menus.dashboard.directories.right.directory3.command = "xdg-open ${homeDir}/Pictures";
|
||||
|
||||
menus.power.lowBatteryNotification = true;
|
||||
|
||||
wallpaper.enable = false;
|
||||
|
||||
# theme.bar.buttons.workspaces.hover = accent-alt;
|
||||
# theme.bar.buttons.workspaces.active = accent;
|
||||
# theme.bar.buttons.workspaces.available = accent-alt;
|
||||
# theme.bar.buttons.workspaces.occupied = accent-alt;
|
||||
#
|
||||
# theme.bar.menus.background = background;
|
||||
# theme.bar.menus.cards = background-alt;
|
||||
# theme.bar.menus.label = foreground;
|
||||
# theme.bar.menus.text = foreground;
|
||||
# theme.bar.menus.border.color = accent;
|
||||
# theme.bar.menus.popover.text = foreground;
|
||||
# theme.bar.menus.popover.background = background-alt;
|
||||
# theme.bar.menus.listitems.active = accent;
|
||||
# theme.bar.menus.icons.active = accent;
|
||||
# theme.bar.menus.switch.enabled = accent;
|
||||
# theme.bar.menus.check_radio_button.active = accent;
|
||||
# theme.bar.menus.buttons.default = accent;
|
||||
# theme.bar.menus.buttons.active = accent;
|
||||
# theme.bar.menus.iconbuttons.active = accent;
|
||||
# theme.bar.menus.progressbar.foreground = accent;
|
||||
# theme.bar.menus.slider.primary = accent;
|
||||
# theme.bar.menus.tooltip.background = background-alt;
|
||||
# theme.bar.menus.tooltip.text = foreground;
|
||||
# theme.bar.menus.dropdownmenu.background = background-alt;
|
||||
# theme.bar.menus.dropdownmenu.text = foreground;
|
||||
|
||||
# theme.bar.background =
|
||||
# background
|
||||
# + (
|
||||
# if transparentButtons && transparent
|
||||
# then "00"
|
||||
# else ""
|
||||
# );
|
||||
# theme.bar.buttons.text =
|
||||
# if transparent && transparentButtons
|
||||
# then foregroundOnWallpaper
|
||||
# else foreground;
|
||||
# theme.bar.buttons.background =
|
||||
# (
|
||||
# if transparent
|
||||
# then background
|
||||
# else background-alt
|
||||
# )
|
||||
# + (
|
||||
# if transparentButtons
|
||||
# then "00"
|
||||
# else ""
|
||||
# );
|
||||
# theme.bar.buttons.icon = accent;
|
||||
#
|
||||
# theme.bar.buttons.notifications.background = background-alt;
|
||||
# theme.bar.buttons.hover = background;
|
||||
# theme.bar.buttons.notifications.hover = background;
|
||||
# theme.bar.buttons.notifications.total = accent;
|
||||
# theme.bar.buttons.notifications.icon = accent;
|
||||
#
|
||||
# theme.osd.bar_color = accent;
|
||||
# theme.osd.bar_overflow_color = accent-alt;
|
||||
# theme.osd.icon = background;
|
||||
# theme.osd.icon_container = accent;
|
||||
# theme.osd.label = accent;
|
||||
# theme.osd.bar_container = background-alt;
|
||||
#
|
||||
# theme.bar.menus.menu.media.background.color = background-alt;
|
||||
# theme.bar.menus.menu.media.card.color = background-alt;
|
||||
#
|
||||
# theme.notification.background = background-alt;
|
||||
# theme.notification.actions.background = accent;
|
||||
# theme.notification.actions.text = foreground;
|
||||
# theme.notification.label = accent;
|
||||
# theme.notification.border = background-alt;
|
||||
# theme.notification.text = foreground;
|
||||
# theme.notification.labelicon = accent;
|
||||
# theme.notification.close_button.background = background-alt;
|
||||
# theme.notification.close_button.label = "#f38ba8";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -11,4 +11,8 @@
|
||||
};
|
||||
systemd.user.services.hyprpaper.Unit.After =
|
||||
lib.mkForce "graphical-session.target";
|
||||
|
||||
wayland.windowManager.hyprland.settings.exec-once = [
|
||||
"systemctl --user enable --now hyprpaper.service"
|
||||
];
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
with lib; let
|
||||
defaultApps = {
|
||||
# check desktop files here: `ls $(echo $XDG_DATA_DIRS| sed "s/:/ /g")`
|
||||
browser = ["brave-browser.desktop"];
|
||||
browser = ["vivaldi-stable.desktop"];
|
||||
text = ["org.gnome.TextEditor.desktop"];
|
||||
image = ["imv-dir.desktop"];
|
||||
audio = ["mpv.desktop"];
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
{inputs, ...}: {
|
||||
imports = [inputs.vicinae.homeManagerModules.default];
|
||||
|
||||
services.vicinae = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland.settings.exec-once = ["systemctl enable --now --user vicinae.service"];
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
# Wofi is a launcher for Wayland, inspired by rofi.
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
accent = "#${config.lib.stylix.colors.base0D}";
|
||||
background = "#${config.lib.stylix.colors.base00}";
|
||||
background-alt = "#${config.lib.stylix.colors.base01}";
|
||||
foreground = "#${config.lib.stylix.colors.base05}";
|
||||
font = config.stylix.fonts.serif.name;
|
||||
rounding = config.theme.rounding;
|
||||
font-size = config.stylix.fonts.sizes.popups;
|
||||
in {
|
||||
home.packages = with pkgs; [wofi-emoji];
|
||||
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
allow_markup = true;
|
||||
width = 450;
|
||||
show = "drun";
|
||||
prompt = "Apps";
|
||||
normal_window = true;
|
||||
height = 305;
|
||||
allow_images = true;
|
||||
image_size = 24;
|
||||
insensitive = true;
|
||||
hide_scroll = true;
|
||||
no_actions = true;
|
||||
gtk_dark = true;
|
||||
};
|
||||
|
||||
style =
|
||||
lib.mkForce
|
||||
# css
|
||||
''
|
||||
* {
|
||||
font-family: "${font}";
|
||||
font-weight: 500;
|
||||
font-size: ${toString font-size}px;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: ${background};
|
||||
color: ${foreground};
|
||||
border-radius: ${toString rounding}px;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#input {
|
||||
background-color: ${background-alt};
|
||||
border: 0px solid ${accent};
|
||||
color: ${foreground};
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#inner-box {}
|
||||
|
||||
#img {
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
#text {
|
||||
color: ${foreground};
|
||||
}
|
||||
|
||||
#text:selected {
|
||||
color: ${foreground};
|
||||
}
|
||||
|
||||
#entry {
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-color: ${accent};
|
||||
color: ${foreground};
|
||||
}
|
||||
|
||||
#unselected {}
|
||||
|
||||
#selected {}
|
||||
|
||||
#input,
|
||||
#entry:selected {
|
||||
border-radius: ${toString rounding}px;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
# Zathura is a PDF viewer
|
||||
{
|
||||
programs.zathura = {
|
||||
enable = true;
|
||||
|
||||
options = {
|
||||
guioptions = "v";
|
||||
adjust-open = "width";
|
||||
statusbar-basename = true;
|
||||
render-loading = false;
|
||||
scroll-step = 120;
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user