feat: drop mako and waybar for caelestia (quickshell)
This commit is contained in:
parent
c788d33a0a
commit
f7b483f091
13 changed files with 181 additions and 276 deletions
|
|
@ -27,10 +27,6 @@
|
|||
|
||||

|
||||
|
||||
### Waybar
|
||||
|
||||

|
||||
|
||||
### Emacs
|
||||
|
||||

|
||||
|
|
|
|||
68
flake.lock
generated
68
flake.lock
generated
|
|
@ -53,6 +53,52 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"caelestia-cli": {
|
||||
"inputs": {
|
||||
"caelestia-shell": [
|
||||
"caelestia-shell"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"caelestia-shell",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772764582,
|
||||
"narHash": "sha256-hSwjmpXHFqzSXrndVekA0IheKrbC7wi0IbfZTYwlmXw=",
|
||||
"owner": "caelestia-dots",
|
||||
"repo": "cli",
|
||||
"rev": "4bcd42f482d038b98145b0b03388244b68b7d35d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "caelestia-dots",
|
||||
"repo": "cli",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"caelestia-shell": {
|
||||
"inputs": {
|
||||
"caelestia-cli": "caelestia-cli",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"quickshell": "quickshell"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1773152543,
|
||||
"narHash": "sha256-ggQuN+6m2fripGF9dI33HKrbZTPhIts+IJjvRqX9ODE=",
|
||||
"owner": "caelestia-dots",
|
||||
"repo": "shell",
|
||||
"rev": "3e0360401bbbb0f640958998f6625495e5b3fdff",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "caelestia-dots",
|
||||
"repo": "shell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"clipboard-sync": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
|
@ -643,9 +689,31 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"quickshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"caelestia-shell",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772925576,
|
||||
"narHash": "sha256-mMoiXABDtkSJxCYDrkhJ/TrrJf5M46oUfIlJvv2gkZ0=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "15a84097653593dd15fad59a56befc2b7bdc270d",
|
||||
"revCount": 750,
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"blink-cmp": "blink-cmp",
|
||||
"caelestia-shell": "caelestia-shell",
|
||||
"clipboard-sync": "clipboard-sync",
|
||||
"home-manager": "home-manager",
|
||||
"hydractify-bot": "hydractify-bot",
|
||||
|
|
|
|||
|
|
@ -23,6 +23,11 @@
|
|||
hydractify-bot.url = "github:hydractify/hydractify-bot";
|
||||
|
||||
blink-cmp.url = "github:Saghen/blink.cmp";
|
||||
|
||||
caelestia-shell = {
|
||||
url = "github:caelestia-dots/shell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@
|
|||
};
|
||||
|
||||
# Enable hypridle
|
||||
hypridle.enable = true;
|
||||
hypridle.enable = false;
|
||||
|
||||
# Add monitor configuration to hyprland
|
||||
extraConfig = # hyprlang
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ in
|
|||
xdg.configFile."hypr/hyprland.conf".text = # hyprlang
|
||||
''
|
||||
source = $HOME/.config/hypr/frappe.conf
|
||||
source = $HOME/.config/hypr/caelestia.conf
|
||||
${cfg.extraConfig}
|
||||
|
||||
#
|
||||
|
|
@ -188,19 +189,17 @@ in
|
|||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod CTRL, F, fullscreenstate, -1 2
|
||||
bind = $mainMod CTRL, L, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
|
||||
bind = $mainMod CTRL, P, exec, ~/.local/share/scripts/hyprland/screenshot_area.sh
|
||||
bind = $mainMod CTRL, V, pin
|
||||
bind = $mainMod SHIFT, F, fullscreen, 1
|
||||
bind = $mainMod SHIFT, P, exec, ~/.local/share/scripts/hyprland/screenshot.sh
|
||||
bind = $mainMod, C, killactive
|
||||
bind = $mainMod, E, exec, thunar
|
||||
bind = $mainMod, E, exec, uwsm app -- thunar
|
||||
bind = $mainMod, F, fullscreen
|
||||
bind = $mainMod, M, exit
|
||||
bind = $mainMod, O, togglesplit # dwindle
|
||||
bind = $mainMod, P, pseudo # dwindle
|
||||
bind = $mainMod, Q, exec, alacritty
|
||||
bind = $mainMod, R, exec, rofi -show drun
|
||||
bind = $mainMod, Q, exec, uwsm app -- alacritty
|
||||
bind = $mainMod, V, togglefloating
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
|
|
@ -311,5 +310,56 @@ in
|
|||
size = 50% 50%
|
||||
}
|
||||
'';
|
||||
|
||||
xdg.configFile."hypr/caelestia.conf".text = # hyprlang
|
||||
''
|
||||
exec = hyprctl dispatch submap global
|
||||
submap = global
|
||||
|
||||
# ## Shell keybinds
|
||||
# Launcher
|
||||
bindi = Super, Super_L, global, caelestia:launcher
|
||||
bindin = Super, catchall, global, caelestia:launcherInterrupt
|
||||
bindin = Super, mouse:272, global, caelestia:launcherInterrupt
|
||||
bindin = Super, mouse:273, global, caelestia:launcherInterrupt
|
||||
bindin = Super, mouse:274, global, caelestia:launcherInterrupt
|
||||
bindin = Super, mouse:275, global, caelestia:launcherInterrupt
|
||||
bindin = Super, mouse:276, global, caelestia:launcherInterrupt
|
||||
bindin = Super, mouse:277, global, caelestia:launcherInterrupt
|
||||
bindin = Super, mouse_up, global, caelestia:launcherInterrupt
|
||||
bindin = Super, mouse_down, global, caelestia:launcherInterrupt
|
||||
|
||||
# Kill/restart
|
||||
bindr = Ctrl+Super+Shift, R, exec, qs -c caelestia kill
|
||||
bindr = Ctrl+Super+Alt, R, exec, qs -c caelestia kill; sleep .1; caelestia shell -d
|
||||
|
||||
# Utilities
|
||||
bindl = , Print, exec, uwsm app -- caelestia screenshot # Full screen capture > clipboard
|
||||
bind = Super+Shift, S, global, caelestia:screenshotFreeze # Capture region (freeze)
|
||||
bind = Super+Shift+Alt, S, global, caelestia:screenshot # Capture region
|
||||
bind = Super+Alt, R, exec, uwsm app -- caelestia record -s # Record screen with sound
|
||||
bind = Ctrl+Alt, R, exec, uwsm app -- caelestia record # Record screen
|
||||
bind = Super+Shift+Alt, R, exec, uwsm app -- caelestia record -r # Record region
|
||||
bind = Super+Shift, C, exec, uwsm app -- hyprpicker -a # Colour picker
|
||||
|
||||
# Volume
|
||||
bindl = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindl = Super+Shift, M, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindle = , XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ $volumeStep%+
|
||||
bindle = , XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ $volumeStep%-
|
||||
|
||||
# Sleep
|
||||
bind = Super+Shift, L, exec, systemctl suspend-then-hibernate
|
||||
|
||||
# Clipboard and emoji picker
|
||||
bind = Super+Ctrl, L, exec, pkill fuzzel || caelestia clipboard
|
||||
bind = Super+Ctrl+Shift, L, exec, pkill fuzzel || caelestia clipboard -d
|
||||
bind = Super, Period, exec, pkill fuzzel || caelestia emoji -p
|
||||
bindl = Ctrl+Shift+Alt, V, exec, sleep 0.5s && ydotool type -d 1 "$(cliphist list | head -1 | cliphist decode)" # Alternate paste
|
||||
|
||||
# Testing
|
||||
bindl = Super+Alt, f12, exec, notify-send -u low -i dialog-information-symbolic 'Test notification' "Here's a really long message to test truncation and wrapping\nYou can middle click or flick this notification to dismiss it!" -a 'Shell' -A "Test1=I got it!" -A "Test2=Another action"
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ in
|
|||
# Enable Hyprland
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
withUWSM = true;
|
||||
|
||||
package = hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
portalPackage = hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||
|
|
|
|||
|
|
@ -4,56 +4,46 @@ pkgs.writeShellScriptBin "start_services" ''
|
|||
#
|
||||
# Make sure xdg-desktop-portal-hyprland has access to what it needs
|
||||
#
|
||||
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
|
||||
dbus-update-activation-environment --systemd --all &
|
||||
|
||||
#
|
||||
# Start waybar.
|
||||
# Start Caelestia (quickshell)
|
||||
#
|
||||
waybar &
|
||||
|
||||
|
||||
#
|
||||
# Start wallpaper daemon
|
||||
#
|
||||
~/.local/share/scripts/wallpaper.sh &
|
||||
|
||||
#
|
||||
# Start notification daemon.
|
||||
#
|
||||
mako &
|
||||
uwsm app -- caelestia resizer -d &
|
||||
uwsm app -- caelestia shell -d &
|
||||
|
||||
#
|
||||
# Start polkit agent
|
||||
#
|
||||
${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1 &
|
||||
uwsm app -- ${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1 &
|
||||
|
||||
#
|
||||
# Start kwallet service
|
||||
#
|
||||
kwalletd6 &
|
||||
uwsm app -- kwalletd6 &
|
||||
|
||||
#
|
||||
# Start kdeconnect daemon
|
||||
#
|
||||
kdeconnectd &
|
||||
uwsm app -- kdeconnectd &
|
||||
|
||||
#
|
||||
# Start Fcitx5
|
||||
#
|
||||
fcitx5 &
|
||||
uwsm app -- fcitx5 &
|
||||
|
||||
#
|
||||
# Start the blueman applet for managing bluetooth devices
|
||||
#
|
||||
blueman-applet &
|
||||
uwsm app -- blueman-applet &
|
||||
|
||||
#
|
||||
# Clipboard manager
|
||||
#
|
||||
${pkgs.wl-clipboard}/bin/wl-paste --watch cliphist store &
|
||||
uwsm app -- ${pkgs.wl-clipboard}/bin/wl-paste --watch cliphist store &
|
||||
|
||||
#
|
||||
# Service that syncs X11 and Wayland clipboards
|
||||
#
|
||||
clipboard-sync
|
||||
uwsm app -- clipboard-sync
|
||||
''
|
||||
|
|
|
|||
|
|
@ -40,10 +40,6 @@ Alacritty & Fish:
|
|||
|
||||

|
||||
|
||||
Waybar:
|
||||
|
||||

|
||||
|
||||
Rofi:
|
||||
|
||||

|
||||
|
|
|
|||
|
|
@ -16,9 +16,6 @@
|
|||
recursive = true;
|
||||
};
|
||||
|
||||
# Configuration for mako, a notification daemon.
|
||||
".config/mako".source = ./dotfiles/mako;
|
||||
|
||||
# Configure pipewire for microphone noise supression.
|
||||
".config/pipewire/pipewire.conf.d/99-input-denoising.conf".text = ''
|
||||
context.modules = [
|
||||
|
|
@ -130,7 +127,6 @@
|
|||
grim
|
||||
kdePackages.ark
|
||||
loupe
|
||||
mako
|
||||
slurp
|
||||
swww
|
||||
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@
|
|||
./git.nix
|
||||
./mangohud.nix
|
||||
./obs-studio.nix
|
||||
./quickshell.nix
|
||||
./rofi
|
||||
./spotify
|
||||
./tmux
|
||||
./waybar.nix
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,32 +0,0 @@
|
|||
anchor=bottom-right
|
||||
background-color=#282a36
|
||||
border-color=#282a36
|
||||
border-radius=20
|
||||
border-size=2
|
||||
default-timeout=10000
|
||||
format=<span font="IBM Plex Serif weight=325 Italic" size="12288">%s</span>\n<span font="IBM Plex Serif weight=325" size="12288">%b</span>
|
||||
group-by=summary
|
||||
height=125
|
||||
icon-location=right
|
||||
layer=top
|
||||
margin=0,20,15
|
||||
markup=1
|
||||
max-icon-size=48
|
||||
padding=10,5,10
|
||||
text-color=#44475a
|
||||
width=300
|
||||
|
||||
[grouped]
|
||||
format=<span font="IBM Plex Serif weight=325 Italic" size="12288">%s</span>\n<span font="IBM Plex Serif weight=325" size="12288">%b</span>
|
||||
|
||||
[mode=do-not-disturb]
|
||||
invisible=1
|
||||
|
||||
[urgency=low]
|
||||
border-color=#282a36
|
||||
|
||||
[urgency=normal]
|
||||
border-color=#f1fa8c
|
||||
|
||||
[urgency=high]
|
||||
border-color=#ff5555
|
||||
40
shared/home-manager/dotfiles/quickshell.nix
Normal file
40
shared/home-manager/dotfiles/quickshell.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{ caelestia-shell, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
caelestia-shell.homeManagerModules.default
|
||||
];
|
||||
|
||||
programs.caelestia = {
|
||||
enable = true;
|
||||
|
||||
cli = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
settings = {
|
||||
general = {
|
||||
apps = {
|
||||
terminal = [ "alacritty" ];
|
||||
};
|
||||
idle = {
|
||||
lockBeforeSleep = false;
|
||||
timeouts = [ ];
|
||||
};
|
||||
};
|
||||
|
||||
bar.status = {
|
||||
showBattery = false;
|
||||
};
|
||||
|
||||
# "Open" notification on clicking.
|
||||
notifs.actionOnClick = true;
|
||||
|
||||
services = {
|
||||
useFahrenheit = false;
|
||||
useFahrenheitPerformance = false;
|
||||
useTwelveHourClock = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,205 +0,0 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
margin = "10px 10px 0";
|
||||
height = 30;
|
||||
|
||||
modules-left = [ "hyprland/workspaces" ];
|
||||
modules-center = [ "clock" ];
|
||||
modules-right = [
|
||||
"network"
|
||||
"memory"
|
||||
"cpu"
|
||||
"temperature"
|
||||
"battery"
|
||||
"tray"
|
||||
];
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
format = "{icon}";
|
||||
|
||||
format-icons = {
|
||||
active = "";
|
||||
default = "";
|
||||
empty = "";
|
||||
persistent = "";
|
||||
special = "";
|
||||
urgent = "";
|
||||
};
|
||||
};
|
||||
|
||||
clock = {
|
||||
format = "{:%H:%M} ";
|
||||
format-alt = "{:%A; %B %d, %Y (%R)} ";
|
||||
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
||||
calendar = {
|
||||
mode = "month";
|
||||
mode-mon-col = 3;
|
||||
weeks-pos = "right";
|
||||
on-scroll = 1;
|
||||
on-click-right = "mode";
|
||||
format = {
|
||||
months = "<span color='#e5c890'><b>{}</b></span>";
|
||||
days = "<span color='#c6d0f5'><b>{}</b></span>";
|
||||
weeks = "<span color='#81c8be'><b>W{}</b></span>";
|
||||
weekdays = "<span color='#ef9f76'><b>{}</b></span>";
|
||||
today = "<span color='#a6d189'><b><u>{}</u></b></span>";
|
||||
};
|
||||
actions = {
|
||||
on-click-backward = "tz_down";
|
||||
on-click-forward = "tz_up";
|
||||
on-click-right = "mode";
|
||||
on-scroll-down = "shift_down";
|
||||
on-scroll-up = "shift_up";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
network = {
|
||||
interval = 5;
|
||||
format = " {bandwidthUpBits} {bandwidthDownBits} ";
|
||||
format-disconnected = " No connection";
|
||||
tooltip-format-wifi = " {essid} ({signalStrength}%)";
|
||||
};
|
||||
|
||||
memory = {
|
||||
interval = 5;
|
||||
format = " {percentage}%";
|
||||
states = {
|
||||
warning = 70;
|
||||
critical = 90;
|
||||
};
|
||||
"tooltip-format" = " {used:0.1f}G/{total:0.1f}G";
|
||||
};
|
||||
|
||||
cpu = {
|
||||
interval = 5;
|
||||
tooltip = false;
|
||||
format = " {usage}%";
|
||||
format-alt = " {load}";
|
||||
states = {
|
||||
warning = 70;
|
||||
critical = 90;
|
||||
};
|
||||
};
|
||||
|
||||
temperature = {
|
||||
critical-threshold = 90;
|
||||
interval = 5;
|
||||
format = "{icon} {temperatureC}°";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
# Module configuration
|
||||
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;
|
||||
};
|
||||
|
||||
tray = {
|
||||
icon-size = 18;
|
||||
spacing = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
style = ''
|
||||
/* Using https://github.com/catppuccin/catppuccin for color reference. */
|
||||
|
||||
/* Keyframes */
|
||||
@keyframes blink-critical {
|
||||
to {
|
||||
/*color: @white;*/
|
||||
background-color: @critical;
|
||||
}
|
||||
}
|
||||
|
||||
* {
|
||||
all: unset;
|
||||
color: #c6d0f5;
|
||||
font-family: "IBM Plex Sans", 'Courier New', Courier, monospace;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.modules-left,
|
||||
.modules-right,
|
||||
.modules-center {
|
||||
padding: 0 20px;
|
||||
border-radius: 10px;
|
||||
background-color: rgba(48, 52, 70, 0.85);
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background-color: rgba(48, 52, 70, 0.85);
|
||||
border-radius: 10px;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: #c6d0f5;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin-left: -5px;
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
margin: 0 8px;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: #414559;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#clock {
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
#network, #cpu, #memory, #temperature {
|
||||
margin: 0 8px;
|
||||
}
|
||||
|
||||
#tray {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
#tray menu {
|
||||
background-color: rgba(48, 52, 70, 0.85);
|
||||
border-radius: 10px;
|
||||
padding: 8px;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue