diff --git a/configuration.nix b/configuration.nix index fe550f3..ff028b4 100644 --- a/configuration.nix +++ b/configuration.nix @@ -2,18 +2,27 @@ # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). -{ config, lib, pkgs, ronema, xdph, ... }: +{ + config, + lib, + pkgs, + ronema, + xdph, + ... +}: { - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - "${builtins.fetchTarball { + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + "${ + builtins.fetchTarball { url = "https://github.com/nix-community/disko/archive/refs/tags/v1.6.1.tar.gz"; sha256 = "1p9vsml07bm3riw703dv83ihlmgyc11qv882qa6bqzqdgn86y8z4"; - }}/module.nix" - ./disko.nix - ]; + } + }/module.nix" + ./disko.nix + ]; boot.kernelPackages = pkgs.linuxPackages_latest; # Use the systemd-boot EFI boot loader. @@ -28,16 +37,16 @@ }; # Pick only one of the below networking options. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. networking.networkmanager.plugins = [ pkgs.networkmanager-openvpn ]; networking.networkmanager.dns = "dnsmasq"; environment.etc."NetworkManager/dnsmasq.d/00-cave.conf".text = '' - server=/.mibex.ch/172.31.13.27 - server=/huus/192.168.15.2 - server=192.168.15.2 - server=192.168.50.1 - server=1.1.1.1 + server=/.mibex.ch/172.31.13.27 + server=/huus/192.168.15.2 + server=192.168.15.2 + server=192.168.50.1 + server=1.1.1.1 ''; # Set your time zone. time.timeZone = "Europe/Zurich"; @@ -55,16 +64,21 @@ # }; # https://nixos.wiki/wiki/Fonts fonts with icons - fonts.packages = with pkgs; - [ - font-awesome - (nerdfonts.override {fonts = ["JetBrainsMono" "CascadiaCode" "FiraCode"];}) - ]; + fonts.packages = with pkgs; [ + font-awesome + (nerdfonts.override { + fonts = [ + "JetBrainsMono" + "CascadiaCode" + "FiraCode" + ]; + }) + ]; fonts.fontconfig = { defaultFonts = { - monospace = ["CaskaydiaCove Nerd Font Mono"]; - sansSerif = ["CascadiaCode Nerd Font"]; - serif = ["CascadiaCode Nerd Font"]; + monospace = [ "CaskaydiaCove Nerd Font Mono" ]; + sansSerif = [ "CascadiaCode Nerd Font" ]; + serif = [ "CascadiaCode Nerd Font" ]; }; }; @@ -126,7 +140,11 @@ # Define a user account. Don't forget to set a password with ‘passwd’. users.users.chrigi = { isNormalUser = true; - extraGroups = [ "wheel" "networkmanager" "docker"]; + extraGroups = [ + "wheel" + "networkmanager" + "docker" + ]; initialPassword = "password"; packages = with pkgs; [ firefox @@ -140,7 +158,7 @@ xdg.portal = { enable = true; extraPortals = [ pkgs.xdg-desktop-portal-wlr ]; - configPackages = [ pkgs.xdg-desktop-portal-wlr ]; + configPackages = [ pkgs.xdg-desktop-portal-wlr ]; }; environment.sessionVariables = { @@ -150,7 +168,7 @@ QT_QPA_PLATFORMTHEME = "qt5ct"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; }; - + # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ @@ -176,15 +194,19 @@ }; programs._1password-gui = { enable = true; - polkitPolicyOwners = ["chrigi"]; + polkitPolicyOwners = [ "chrigi" ]; }; security.polkit.enable = true; services.gnome.gnome-keyring.enable = true; security.pam.services.greetd.enableGnomeKeyring = true; - nix.gc = { automatic = true; dates = "weekly"; options = "--delete-older-than 7d"; }; - + nix.gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 7d"; + }; + # Some programs need SUID wrappers, can be configured further or are # started in user sessions. # programs.mtr.enable = true; @@ -226,11 +248,13 @@ # # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . system.stateVersion = "23.11"; # Did you read the comment? - + nix = { # package = pkgs.nix; - settings.experimental-features = ["nix-command" "flakes"]; + settings.experimental-features = [ + "nix-command" + "flakes" + ]; }; } - diff --git a/disko.nix b/disko.nix index ae1a821..198e8bd 100644 --- a/disko.nix +++ b/disko.nix @@ -30,9 +30,17 @@ bypassWorkqueues = true; keyFile = "/tmp/yk/yk_mini.key"; }; - additionalKeyFiles = [ "/tmp/yk/yk_the_big_one.key" "/tmp/yk/yk_on_key.key" "/tmp/yk/yk_round.key" ]; + additionalKeyFiles = [ + "/tmp/yk/yk_the_big_one.key" + "/tmp/yk/yk_on_key.key" + "/tmp/yk/yk_round.key" + ]; # https://github.com/sgillespie/nixos-yubikey-luks - extraFormatArgs = [ "--cipher=aes-xts-plain64" "--key-size=512" "--hash=sha512" ]; + extraFormatArgs = [ + "--cipher=aes-xts-plain64" + "--key-size=512" + "--hash=sha512" + ]; initrdUnlock = false; # we have to add it manually because of the yubikeys content = { type = "btrfs"; @@ -41,23 +49,48 @@ "/root" = { mountpoint = "/"; # https://unix.stackexchange.com/questions/752741/what-is-the-mount-option-space-cache-v2 - mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" "commit=120"]; + mountOptions = [ + "compress=zstd" + "noatime" + "space_cache=v2" + "commit=120" + ]; }; "/home" = { mountpoint = "/home"; - mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" "commit=120"]; + mountOptions = [ + "compress=zstd" + "noatime" + "space_cache=v2" + "commit=120" + ]; }; "/nix" = { mountpoint = "/nix"; - mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" "commit=120"]; + mountOptions = [ + "compress=zstd" + "noatime" + "space_cache=v2" + "commit=120" + ]; }; "/var" = { mountpoint = "/var"; - mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" "commit=120"]; + mountOptions = [ + "compress=zstd" + "noatime" + "space_cache=v2" + "commit=120" + ]; }; "/docker-btrfs" = { mountpoint = "/var/lib/docker/btrfs"; - mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" "commit=120"]; + mountOptions = [ + "compress=zstd" + "noatime" + "space_cache=v2" + "commit=120" + ]; }; }; }; @@ -85,14 +118,22 @@ content = { type = "luks"; name = "crypted_backup"; - + settings = { allowDiscards = true; bypassWorkqueues = true; keyFile = "/tmp/yk/yk_mini.key"; }; - additionalKeyFiles = [ "/tmp/yk/yk_the_big_one.key" "/tmp/yk/yk_on_key.key" "/tmp/yk/yk_round.key" ]; - extraFormatArgs = [ "--cipher=aes-xts-plain64" "--key-size=512" "--hash=sha512" ]; + additionalKeyFiles = [ + "/tmp/yk/yk_the_big_one.key" + "/tmp/yk/yk_on_key.key" + "/tmp/yk/yk_round.key" + ]; + extraFormatArgs = [ + "--cipher=aes-xts-plain64" + "--key-size=512" + "--hash=sha512" + ]; initrdUnlock = false; # we have to add it manually because of the yubikeys content = { type = "btrfs"; @@ -100,7 +141,12 @@ subvolumes = { "/backup" = { mountpoint = "/backup"; - mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" "commit=120"]; + mountOptions = [ + "compress=zstd" + "noatime" + "space_cache=v2" + "commit=120" + ]; }; }; }; diff --git a/flake.nix b/flake.nix index 9644f7e..0120943 100644 --- a/flake.nix +++ b/flake.nix @@ -10,7 +10,7 @@ inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { - url = github:nix-community/home-manager; + url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; ronema = { @@ -19,17 +19,28 @@ }; }; - outputs = { self, nixpkgs, nixos-hardware, home-manager, nix-colors, ronema, xdph, ... }@inputs: + outputs = + { + self, + nixpkgs, + nixos-hardware, + home-manager, + nix-colors, + ronema, + xdph, + ... + }@inputs: let username = "chrigi"; lib = nixpkgs.lib; system = "x86_64-linux"; - pkgs = import nixpkgs { - inherit system; + pkgs = import nixpkgs { + inherit system; config.allowUnfree = true; }; - in { + in + { nixosConfigurations.nix-fw16 = lib.nixosSystem { specialArgs = { inherit pkgs ronema xdph; @@ -38,14 +49,16 @@ ./configuration.nix ./greeter.nix nixos-hardware.nixosModules.framework-16-7040-amd - home-manager.nixosModules.home-manager { + home-manager.nixosModules.home-manager + { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.${username} = import ./home.nix; - home-manager.extraSpecialArgs = {inherit username nix-colors; }; + home-manager.extraSpecialArgs = { + inherit username nix-colors; + }; } ]; }; }; } - diff --git a/greeter.nix b/greeter.nix index 8595eb4..fb05f43 100644 --- a/greeter.nix +++ b/greeter.nix @@ -1,6 +1,11 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let - + tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet"; hyprland-session = "${pkgs.hyprland}/share/wayland-sessions"; @@ -16,7 +21,8 @@ let terminal = true; }; -in { +in +{ services.greetd = { enable = true; @@ -29,4 +35,4 @@ in { }; environment.systemPackages = with pkgs; [ greetd.tuigreet ]; -} \ No newline at end of file +} diff --git a/hardware-configuration.nix b/hardware-configuration.nix index 289f637..0667a84 100644 --- a/hardware-configuration.nix +++ b/hardware-configuration.nix @@ -1,25 +1,36 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: +{ + config, + lib, + pkgs, + modulesPath, + ... +}: { - disabledModules = ["system/boot/luksroot.nix"]; + disabledModules = [ "system/boot/luksroot.nix" ]; - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ./my-luksroot.nix - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ./my-luksroot.nix + ]; boot.initrd = { - kernelModules = ["vfat" "nls_cp437" "nls_iso8859-1" "usbhid"]; - + kernelModules = [ + "vfat" + "nls_cp437" + "nls_iso8859-1" + "usbhid" + ]; + luks = { yubikeySupport = true; reusePassphrases = true; devices."crypted_root" = { device = "/dev/disk/by-partlabel/disk-main-luks"; - + yubikey = { slot = 2; twoFactor = true; @@ -27,7 +38,7 @@ keyLength = 64; saltLength = 16; replaceKey = false; - + storage = { device = "/dev/disk/by-partlabel/disk-main-ESP"; fsType = "vfat"; @@ -37,7 +48,7 @@ }; devices."crypted_backup" = { device = "/dev/disk/by-partlabel/disk-backup-luks"; - + yubikey = { slot = 2; twoFactor = true; diff --git a/home.nix b/home.nix index 08716e4..e8e4b11 100644 --- a/home.nix +++ b/home.nix @@ -1,7 +1,13 @@ -{ config, pkgs, nix-colors, username, ... }: +{ + config, + pkgs, + nix-colors, + username, + ... +}: { - imports = [ + imports = [ nix-colors.homeManagerModules.default ./modules/dunst.nix ./modules/waybar.nix @@ -14,7 +20,6 @@ home.username = "${username}"; home.homeDirectory = "/home/${username}"; - # Packages that should be installed to the user profile. home.packages = with pkgs; [ kitty @@ -24,7 +29,7 @@ obsidian jq direnv - + okular zip @@ -42,11 +47,16 @@ nextcloud-client font-awesome - (nerdfonts.override {fonts = ["JetBrainsMono" "CascadiaCode" "FiraCode"];}) + (nerdfonts.override { + fonts = [ + "JetBrainsMono" + "CascadiaCode" + "FiraCode" + ]; + }) ]; - programs.ssh = { enable = true; extraConfig = '' @@ -62,7 +72,13 @@ programs.bash = { enable = true; - historyIgnore = [ "l" "ls" "ll" "cd" "exit" ]; + historyIgnore = [ + "l" + "ls" + "ll" + "cd" + "exit" + ]; historyControl = [ "erasedups" ]; shellAliases = { grep = "grep --color=auto"; @@ -81,7 +97,6 @@ ''; }; - programs.starship = { enable = true; enableBashIntegration = true; @@ -99,4 +114,4 @@ # Let home Manager install and manage itself. # programs.home-manager.enable = true; -} \ No newline at end of file +} diff --git a/hyperland/default.nix b/hyperland/default.nix index 34c34f8..7b96662 100644 --- a/hyperland/default.nix +++ b/hyperland/default.nix @@ -1,4 +1,9 @@ -{ config, pkgs, username, ... }: +{ + config, + pkgs, + username, + ... +}: let volumeChange = pkgs.writeShellScript "volume-change" '' # FROM: https://github.com/jsimonrichard/nix-config/blob/master/modules/my-config/desktop/hyprland/home-manager/desktop/hyprland/keybinds.nix @@ -36,7 +41,7 @@ in # (pkgs.waybar.overrideAttrs (oldAttrs: { # mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; # })) - ]; + ]; services.hyprpaper = { enable = true; @@ -51,7 +56,7 @@ in }; }; - programs.hyprlock = { + programs.hyprlock = { enable = true; settings = { background = { @@ -62,7 +67,7 @@ in blur_passes = 1; blur_size = 7; - noise = 0.0117; + noise = 1.17e-2; contrast = 0.8916; brightness = 0.8172; vibrancy = 0.1696; @@ -112,7 +117,7 @@ in shadow_size = 10; } - { + { monitor = ""; text = "$USER"; color = "rgba(200, 200, 200, 1.0)"; @@ -177,10 +182,10 @@ in wayland.windowManager.hyprland.enable = true; wayland.windowManager.hyprland.settings = { - monitor=[ + monitor = [ "eDP-1,2560x1600@60.00Hz,0x0,1" "DP-3,preferred,-3840x-560,1" - "DP-2,preferred,auto,1.5" + "DP-2,preferred,auto,1.5" ]; "$mod" = "SUPER"; @@ -204,7 +209,6 @@ in "$mod, mouse:273, resizewindow" ]; - bind = [ "$mod, F, exec, firefox" @@ -222,52 +226,56 @@ in ++ ( # workspaces # binds $mod + [shift +] {1..10} to [move to] workspace {1..10} - builtins.concatLists (builtins.genList ( - x: let - ws = let - c = (x + 1) / 10; - in + builtins.concatLists ( + builtins.genList ( + x: + let + ws = + let + c = (x + 1) / 10; + in builtins.toString (x + 1 - (c * 10)); - in [ + in + [ "$mod, ${ws}, workspace, ${toString (x + 1)}" "$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}" ] - ) - 10) + ) 10 + ) ); - windowrulev2= [ - # https://jbmorley.co.uk/posts/2024-02-13-1password-and-hyprland/ - "float, title:(1Password)" - "size 70% 70%, title:(1Password)" - "center, title:(1Password)" + windowrulev2 = [ + # https://jbmorley.co.uk/posts/2024-02-13-1password-and-hyprland/ + "float, title:(1Password)" + "size 70% 70%, title:(1Password)" + "center, title:(1Password)" - "float,class:(.blueman-manager-wrapped)" - "size 25% 25%,class:(.blueman-manager-wrapped)" + "float,class:(.blueman-manager-wrapped)" + "size 25% 25%,class:(.blueman-manager-wrapped)" - "float,class:(org.kde.polkit-kde-authentication-agent-1)" - "opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$" - "bordercolor rgba(ed8796FF), class:org.kde.polkit-kde-authentication-agent-1" - "dimaround, class:org.kde.polkit-kde-authentication-agent-1" - "stayfocused, class:org.kde.polkit-kde-authentication-agent-1" - ]; - # Bind flags - # l -> locked, will also work when an input inhibitor (e.g. a lockscreen) is active. - # r -> release, will trigger on release of a key. - # e -> repeat, will repeat when held. - # n -> non-consuming, key/mouse events will be passed to the active window in addition to triggering the dispatcher. - # m -> mouse, see below - # t -> transparent, cannot be shadowed by other binds. - # i -> ignore mods, will ignore modifiers. - binde = [ - ", XF86AudioRaiseVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SINK@ 5%+ --limit 1.3" - "CTRL, XF86AudioRaiseVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SOURCE@ 5%+ --limit 1" - ]; - bindle = [ - ", XF86AudioLowerVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SINK@ 5%-" - "CTRL, XF86AudioLowerVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SOURCE@ 5%-" - ]; - bindl = [ - ", XF86AudioMute, exec, ${volumeChange} set-mute @DEFAULT_AUDIO_SINK@ toggle" - ]; + "float,class:(org.kde.polkit-kde-authentication-agent-1)" + "opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$" + "bordercolor rgba(ed8796FF), class:org.kde.polkit-kde-authentication-agent-1" + "dimaround, class:org.kde.polkit-kde-authentication-agent-1" + "stayfocused, class:org.kde.polkit-kde-authentication-agent-1" + ]; + # Bind flags + # l -> locked, will also work when an input inhibitor (e.g. a lockscreen) is active. + # r -> release, will trigger on release of a key. + # e -> repeat, will repeat when held. + # n -> non-consuming, key/mouse events will be passed to the active window in addition to triggering the dispatcher. + # m -> mouse, see below + # t -> transparent, cannot be shadowed by other binds. + # i -> ignore mods, will ignore modifiers. + binde = [ + ", XF86AudioRaiseVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SINK@ 5%+ --limit 1.3" + "CTRL, XF86AudioRaiseVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SOURCE@ 5%+ --limit 1" + ]; + bindle = [ + ", XF86AudioLowerVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SINK@ 5%-" + "CTRL, XF86AudioLowerVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SOURCE@ 5%-" + ]; + bindl = [ + ", XF86AudioMute, exec, ${volumeChange} set-mute @DEFAULT_AUDIO_SINK@ toggle" + ]; }; -} \ No newline at end of file +} diff --git a/modules/dunst.nix b/modules/dunst.nix index ede7f7b..4a51043 100644 --- a/modules/dunst.nix +++ b/modules/dunst.nix @@ -2,7 +2,8 @@ inputs, config, ... -}:{ +}: +{ services.dunst = { enable = true; settings = { @@ -54,7 +55,7 @@ title = "Dunst"; class = "Dunst"; corner_radius = 10; - icon_corner_radius= 5; + icon_corner_radius = 5; notification_limit = 5; mouse_left_click = "close_current"; mouse_middle_click = "do_action"; @@ -97,4 +98,4 @@ }; }; }; -} \ No newline at end of file +} diff --git a/modules/ranger.nix b/modules/ranger.nix index 45329ff..e7c9d5f 100644 --- a/modules/ranger.nix +++ b/modules/ranger.nix @@ -1,70 +1,72 @@ -{pkgs, ...}: +{ pkgs, ... }: { # stolen from: https://github.com/leoperegrino/.files/blob/d996b31a0b1843f05d0f27123196bfa6d0980caa/home-manager/modules/ranger.nix programs.ranger = { - enable = true; - extraPackages = [ - pkgs.ueberzugpp - ]; - extraConfig = "default_linemode devicons"; - plugins = [{ - name = "devicons"; - src = builtins.fetchGit { - url = "https://github.com/alexanderjeurissen/ranger_devicons.git"; - rev = "a8d626485ca83719e1d8d5e32289cd96a097c861"; - }; - }]; - settings = { - preview_images_method = "ueberzug"; - show_hidden = true; - use_preview_script = true; - preview_images = true; - preview_files = true; - open_all_images = true; - draw_borders = true; - hidden_filter = ''^\.|\.(bak|swp)$|^lost\+found$|^__pycache__$''; - nested_ranger_warning = true; - colorscheme = "jungle"; - }; - # mappings = { - # "gu" = "cd ~/.local/share"; - # "gs" = "cd ~/.local/state"; - # "gf" = "cd ~/.files"; - # "gV" = "cd ~/.files/nvim/lua/user/"; - # "gc" = "cd ~/.config"; - # "gC" = "cd ~/.cache"; - # "gb" = "cd ~/bin"; - # "gD" = "cd ~/desktop"; - # "gd" = "cd ~/documents"; - # "gm" = "cd ~/music"; - # "gp" = "cd ~/pictures"; - # "gv" = "cd ~/videos"; - # "gU" = "cd /usr/share/"; - # "gr" = "cd /"; - # "gt" = "cd /tmp"; - # "g/r" = "shell sudo ranger ."; + enable = true; + extraPackages = [ + pkgs.ueberzugpp + ]; + extraConfig = "default_linemode devicons"; + plugins = [ + { + name = "devicons"; + src = builtins.fetchGit { + url = "https://github.com/alexanderjeurissen/ranger_devicons.git"; + rev = "a8d626485ca83719e1d8d5e32289cd96a097c861"; + }; + } + ]; + settings = { + preview_images_method = "ueberzug"; + show_hidden = true; + use_preview_script = true; + preview_images = true; + preview_files = true; + open_all_images = true; + draw_borders = true; + hidden_filter = ''^\.|\.(bak|swp)$|^lost\+found$|^__pycache__$''; + nested_ranger_warning = true; + colorscheme = "jungle"; + }; + # mappings = { + # "gu" = "cd ~/.local/share"; + # "gs" = "cd ~/.local/state"; + # "gf" = "cd ~/.files"; + # "gV" = "cd ~/.files/nvim/lua/user/"; + # "gc" = "cd ~/.config"; + # "gC" = "cd ~/.cache"; + # "gb" = "cd ~/bin"; + # "gD" = "cd ~/desktop"; + # "gd" = "cd ~/documents"; + # "gm" = "cd ~/music"; + # "gp" = "cd ~/pictures"; + # "gv" = "cd ~/videos"; + # "gU" = "cd /usr/share/"; + # "gr" = "cd /"; + # "gt" = "cd /tmp"; + # "g/r" = "shell sudo ranger ."; - # "ev" = ''shell "''${EDITOR}" -- %s''; - # "eV" = ''console shell "''${EDITOR}" --%space''; - # "et" = ''shell "''${EDITOR}" -p -- %s''; - # "eT" = ''console shell "''${EDITOR}" -p -- %s%space''; - # "es" = ''shell "''${EDITOR}" -O -- %s''; - # "eS" = ''console shell "''${EDITOR}" -O -- %s%space''; - # "EV" = ''shell sudo "''${EDITOR}" -- %s''; - # "V" = ''shell setsid -f alacritty -e zsh -ic "''${EDITOR} -- %s"''; - # "B" = ''shell setsid -f alacritty -e zsh -ic "''${PAGER} -- %s"''; - # "" = "console touch%space"; + # "ev" = ''shell "''${EDITOR}" -- %s''; + # "eV" = ''console shell "''${EDITOR}" --%space''; + # "et" = ''shell "''${EDITOR}" -p -- %s''; + # "eT" = ''console shell "''${EDITOR}" -p -- %s%space''; + # "es" = ''shell "''${EDITOR}" -O -- %s''; + # "eS" = ''console shell "''${EDITOR}" -O -- %s%space''; + # "EV" = ''shell sudo "''${EDITOR}" -- %s''; + # "V" = ''shell setsid -f alacritty -e zsh -ic "''${EDITOR} -- %s"''; + # "B" = ''shell setsid -f alacritty -e zsh -ic "''${PAGER} -- %s"''; + # "" = "console touch%space"; - # "CC" = "get_cumulative_size"; - # "md" = "console mkdir%space"; - # "cW" = "bulkrename"; - # "i" = ''shell "''${PAGER}" -- %f''; - # "v" = "mark_files all=True toggle=True"; - # "n" = "tab_new"; - # "b" = ''shell setsid -f "''${TERM}"''; - # "f" = "console scout -ftse%space"; - # "" = "scroll_preview 1"; - # "" = "scroll_preview -1"; - # }; - }; -} \ No newline at end of file + # "CC" = "get_cumulative_size"; + # "md" = "console mkdir%space"; + # "cW" = "bulkrename"; + # "i" = ''shell "''${PAGER}" -- %f''; + # "v" = "mark_files all=True toggle=True"; + # "n" = "tab_new"; + # "b" = ''shell setsid -f "''${TERM}"''; + # "f" = "console scout -ftse%space"; + # "" = "scroll_preview 1"; + # "" = "scroll_preview -1"; + # }; + }; +} diff --git a/modules/waybar.nix b/modules/waybar.nix index 8751f59..b49327d 100644 --- a/modules/waybar.nix +++ b/modules/waybar.nix @@ -1,653 +1,679 @@ -{ +{ config, pkgs, ... -}: { -programs.waybar = { - enable = true; - package = pkgs.waybar; - settings = { - mainBar = { - height = 18; - layer = "top"; - modules-left = [ - "custom/launcher" - "cpu" - "memory" - # "custom/weather" - "hyprland/workspaces" - ]; - modules-center = [ - # "mpris" - "hyprland/window" - ]; - modules-right = [ - "network" - "pulseaudio" - "backlight" - "battery" - "clock" - "tray" - "group/group-power" - # "hyprland/language" - # "custom/wallpaper" - # "custom/power-menu" - ]; - - "hyprland/workspaces" = { - format = "{name}"; - all-outputs = true; - on-click = "activate"; - format-icons = { - active = " 󱎴"; - default = "󰍹"; - }; - persistent-workspaces = { - "1" = []; - "2" = []; - "3" = []; - "4" = []; - "5" = []; - "6" = []; - "7" = []; - "8" = []; - "9" = []; - }; +}: +{ + programs.waybar = { + enable = true; + package = pkgs.waybar; + settings = { + mainBar = { + height = 18; + layer = "top"; + modules-left = [ + "custom/launcher" + "cpu" + "memory" + # "custom/weather" + "hyprland/workspaces" + ]; + modules-center = [ + # "mpris" + "hyprland/window" + ]; + modules-right = [ + "network" + "pulseaudio" + "backlight" + "battery" + "clock" + "tray" + "group/group-power" + # "hyprland/language" + # "custom/wallpaper" + # "custom/power-menu" + ]; + + "hyprland/workspaces" = { + format = "{name}"; + all-outputs = true; + on-click = "activate"; + format-icons = { + active = " 󱎴"; + default = "󰍹"; }; - "hyprland/language" = { - format = "{short}"; + persistent-workspaces = { + "1" = [ ]; + "2" = [ ]; + "3" = [ ]; + "4" = [ ]; + "5" = [ ]; + "6" = [ ]; + "7" = [ ]; + "8" = [ ]; + "9" = [ ]; }; - - "hyprland/window" = { - max-length = 200; - separate-outputs = true; - }; - "tray" = { - spacing = 10; - }; - "clock" = { - format = "{:%H:%M}"; - format-alt = "{:%b %d %Y}"; - tooltip-format = "{:%Y %B}\n{calendar}"; - }; - - "cpu" = { - interval = 10; - format = " {}%"; - max-length = 10; - on-click = ""; - }; - "memory" = { - interval = 30; - format = " {}%"; - format-alt = " {used:0.1f}GB"; - max-length = 10; - }; - "temperature" = { - interval = 10; - format = " {temperatureC}°C"; - max-length = 10; - }; - "backlight" = { - # device = "intel_backlight"; - format = "{icon}"; - tooltip = true; - format-alt = "{percent}%"; - format-icons = ["󱩎" "󱩏" "󱩐" "󱩑" "󱩒" "󱩓" "󱩔" "󱩕" "󱩖" "󰛨"]; - # on-scroll-up = "brightnessctl set 1%+"; - # on-scroll-down = "brightnessctl set 1%-"; - # smooth-scrolling-threshold = "2400"; - tooltip-format = "Brightness {percent}%"; - }; - "network" = { - format-wifi = "{essid} {icon}"; - min-length = 10; - fixed-width = 10; - format-ethernet = "󰈀"; - format-disconnected = "󰤭"; - tooltip-format = "{essid}"; - interval = 1; - on-click = "ronema"; - format-icons = ["󰤯" "󰤟" "󰤢" "󰤥" "󰤨"]; - }; - - "bluetooth" = { - format = "{icon}"; - format-alt = "bluetooth: {status}"; - interval = 30; - format-icons = { - enabled = ""; - disabled = "󰂲"; - }; - tooltip-format = "{status}"; - }; - - "pulseaudio" = { - format = "{volume}% {icon} {format_source}"; - format-muted = "󰖁"; - format-source = "{volume}% "; - format-source-muted = ""; - - format-icons = { - headphone = ""; - default = ["" "" "󰕾"]; - }; - # on-click = "pamixer -t"; - # on-scroll-up = "pamixer -i 1"; - # on-scroll-down = "pamixer -d 1"; - # on-click-right = "exec pavucontrol"; - # tooltip-format = "Volume {volume}%"; - }; - - "battery" = { - # bat = "BAT0"; - # adapter = "ADP0"; - interval = 60; - states = { - warning = 20; - critical = 15; - }; - max-length = 20; - format = "{icon}"; - format-warning = "{icon}"; - format-critical = "{icon}"; - format-charging = ""; - format-plugged = "󰚥"; - format-notcharging = "󰚥"; - format-full = "󰂄"; - - format-alt = "{capacity}% "; - format-icons = ["󱊡" "󱊢" "󱊣"]; - }; - - # "custom/weather" = { - # exec = "nix-shell ~/.config/waybar/scripts/weather.py"; - # restart-interval = 300; - # return-type = "json"; - # }; - - # "mpris" = { - # format = "{player_icon} {title}"; - # format-paused = " {status_icon} {title}"; - # max-length = 80; - # player-icons = { - # default = "▶"; - # mpv = "🎵"; - # }; - # status-icons = { - # paused = "⏸"; - # }; - # }; - - # "custom/spotify" = { - # exec = "nix-shell ~/.config/waybar/scripts/mediaplayer.py --player youtube-music"; - # format = " {}"; - # return-type = "json"; - # on-click = "playerctl play-pause"; - # on-double-click-right = "playerctl next"; - # on-scroll-down = "playerctl previous"; - # }; - - # "custom/power-menu" = { - # format = "{percentage}Hz"; - # on-click = "~/.config/hypr/scripts/screenHz.sh"; - # return-type = "json"; - # exec = "cat ~/.config/hypr/scripts/hz.json"; - # interval = 1; - # tooltip = false; - # }; - - "custom/launcher" = { - format = "󱄅"; - on-click = "rofi -show drun &"; - }; - - "group/group-power" = { - orientation = "inherit"; - drawer = { - transition-duration = 500; - children-class = "not-suspend"; - transition-left-to-right = false; - }; - modules = [ - "custom/suspend" - "custom/power" - "custom/quit" - "custom/lock" - "custom/reboot" - ]; - }; - "custom/suspend" = { - format = "󰒲"; - tooltip = false; - on-click = "systemctl suspend"; - }; - "custom/quit" = { - format = "󰗼"; - tooltip = false; - on-click = "hyprctl dispatch exit"; + }; + "hyprland/language" = { + format = "{short}"; + }; + + "hyprland/window" = { + max-length = 200; + separate-outputs = true; + }; + "tray" = { + spacing = 10; + }; + "clock" = { + format = "{:%H:%M}"; + format-alt = "{:%b %d %Y}"; + tooltip-format = "{:%Y %B}\n{calendar}"; + }; + + "cpu" = { + interval = 10; + format = " {}%"; + max-length = 10; + on-click = ""; + }; + "memory" = { + interval = 30; + format = " {}%"; + format-alt = " {used:0.1f}GB"; + max-length = 10; + }; + "temperature" = { + interval = 10; + format = " {temperatureC}°C"; + max-length = 10; + }; + "backlight" = { + # device = "intel_backlight"; + format = "{icon}"; + tooltip = true; + format-alt = "{percent}%"; + format-icons = [ + "󱩎" + "󱩏" + "󱩐" + "󱩑" + "󱩒" + "󱩓" + "󱩔" + "󱩕" + "󱩖" + "󰛨" + ]; + # on-scroll-up = "brightnessctl set 1%+"; + # on-scroll-down = "brightnessctl set 1%-"; + # smooth-scrolling-threshold = "2400"; + tooltip-format = "Brightness {percent}%"; + }; + "network" = { + format-wifi = "{essid} {icon}"; + min-length = 10; + fixed-width = 10; + format-ethernet = "󰈀"; + format-disconnected = "󰤭"; + tooltip-format = "{essid}"; + interval = 1; + on-click = "ronema"; + format-icons = [ + "󰤯" + "󰤟" + "󰤢" + "󰤥" + "󰤨" + ]; + }; + + "bluetooth" = { + format = "{icon}"; + format-alt = "bluetooth: {status}"; + interval = 30; + format-icons = { + enabled = ""; + disabled = "󰂲"; }; - "custom/lock" = { - format = "󰍁"; - tooltip = false; - on-click = "hyprlock"; + tooltip-format = "{status}"; + }; + + "pulseaudio" = { + format = "{volume}% {icon} {format_source}"; + format-muted = "󰖁"; + format-source = "{volume}% "; + format-source-muted = ""; + + format-icons = { + headphone = ""; + default = [ + "" + "" + "󰕾" + ]; }; - "custom/reboot" = { - format = "󰜉"; - tooltip = false; - on-click = "reboot"; - }; - "custom/power" = { - format = ""; - tooltip = false; - on-click = "shutdown now"; - }; - - # "custom/wallpaper" = { - # format = "󰸉"; - # on-click = "bash ~/.config/waybar/scripts/changewallpaper.sh"; - # }; + # on-click = "pamixer -t"; + # on-scroll-up = "pamixer -i 1"; + # on-scroll-down = "pamixer -d 1"; + # on-click-right = "exec pavucontrol"; + # tooltip-format = "Volume {volume}%"; + }; + + "battery" = { + # bat = "BAT0"; + # adapter = "ADP0"; + interval = 60; + states = { + warning = 20; + critical = 15; }; + max-length = 20; + format = "{icon}"; + format-warning = "{icon}"; + format-critical = "{icon}"; + format-charging = ""; + format-plugged = "󰚥"; + format-notcharging = "󰚥"; + format-full = "󰂄"; + + format-alt = "{capacity}% "; + format-icons = [ + "󱊡" + "󱊢" + "󱊣" + ]; + }; + + # "custom/weather" = { + # exec = "nix-shell ~/.config/waybar/scripts/weather.py"; + # restart-interval = 300; + # return-type = "json"; + # }; + + # "mpris" = { + # format = "{player_icon} {title}"; + # format-paused = " {status_icon} {title}"; + # max-length = 80; + # player-icons = { + # default = "▶"; + # mpv = "🎵"; + # }; + # status-icons = { + # paused = "⏸"; + # }; + # }; + + # "custom/spotify" = { + # exec = "nix-shell ~/.config/waybar/scripts/mediaplayer.py --player youtube-music"; + # format = " {}"; + # return-type = "json"; + # on-click = "playerctl play-pause"; + # on-double-click-right = "playerctl next"; + # on-scroll-down = "playerctl previous"; + # }; + + # "custom/power-menu" = { + # format = "{percentage}Hz"; + # on-click = "~/.config/hypr/scripts/screenHz.sh"; + # return-type = "json"; + # exec = "cat ~/.config/hypr/scripts/hz.json"; + # interval = 1; + # tooltip = false; + # }; + + "custom/launcher" = { + format = "󱄅"; + on-click = "rofi -show drun &"; + }; + + "group/group-power" = { + orientation = "inherit"; + drawer = { + transition-duration = 500; + children-class = "not-suspend"; + transition-left-to-right = false; }; - style = '' - * { - /* `otf-font-awesome` is required to be installed for icons */ - font-family: CaskaydiaCove NFM, JetBrainsMono Nerd Font, Iosevka Nerd Font; - font-size: 14px; - border: none; - border-radius: 0; - min-height: 0; - } - - window#waybar { - background-color: rgba(26, 27, 38, 0.5); - color: #ffffff; - transition-property: background-color; - transition-duration: 0.5s; - } - - window#waybar.hidden { - opacity: 0.1; - } - - #window { - color: #64727d; - } - - #clock, - #temperature, - #mpris, - #cpu, - #memory, - #custom-media, - #tray, - #mode, - #workspaces, - #idle_inhibitor, - #custom-launcher, - #custom-spotify, - #custom-weather, - #custom-suspend, - #group-power - #custom-power, - #custom-lock, - #custom-quit, - #custom-reboot, - #group-power.drawer - #custom-weather.severe, - #custom-weather.sunnyDay, - #custom-weather.clearNight, - #custom-weather.cloudyFoggyDay, - #custom-weather.cloudyFoggyNight, - #custom-weather.rainyDay, - #custom-weather.rainyNight, - #custom-weather.showyIcyDay, - #custom-weather.snowyIcyNight, - #custom-weather.default { - color: #e5e5e5; - border-radius: 6px; - padding: 2px 10px; - background-color: #252733; - border-radius: 8px; - font-size: 16px; - - margin-left: 4px; - margin-right: 4px; - - margin-top: 8.5px; - margin-bottom: 8.5px; - } - #temperature{ - color: #7a95c9; - } - #cpu { - color: #fb958b; - } - - #memory { - color: #a1c999; - } - - #workspaces button { - color: #7a95c9; - box-shadow: inset 0 -3px transparent; - - padding-right: 3px; - padding-left: 4px; - - margin-left: 0.1em; - margin-right: 0em; - transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.68); - } - - #workspaces button.active { - color: #ecd3a0; - padding-left: 1px; - padding-right: 5px; - font-family: Iosevka Nerd Font; - font-weight: bold; - font-size: 12px; - margin-left: 0em; - margin-right: 0em; - transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.68); - } - - /* If workspaces is the leftmost module, omit left margin */ - .modules-left > widget:first-child > #workspaces { - margin-left: 0; - } - - /* If workspaces is the rightmost module, omit right margin */ - .modules-right > widget:last-child > #workspaces { - margin-right: 0; - } - - #custom-launcher { - margin-left: 12px; - - padding-right: 18px; - padding-left: 14px; - - font-size: 22px; - - color: #7a95c9; - - margin-top: 8.5px; - margin-bottom: 8.5px; - } - #bluetooth, - #backlight, - #battery, - #pulseaudio, - #network { - background-color: #252733; - padding: 0em 2em; - - font-size: 14px; - - padding-left: 7.5px; - padding-right: 7.5px; - - padding-top: 3px; - padding-bottom: 3px; - - margin-top: 7px; - margin-bottom: 7px; - - font-size: 20px; - } - - #pulseaudio { - color: #81A1C1; - padding-left: 9px; - font-size: 16px; - } - - #pulseaudio.muted { - color: #fb958b; - padding-left: 9px; - font-size: 16px; - } - - #backlight { - color: #ecd3a0; - padding-right: 5px; - padding-left: 8px; - font-size: 21.2px; - } - - #network { - padding-left: 0.2em; - color: #5E81AC; - border-radius: 8px 0px 0px 8px; - padding-left: 14px; - padding-right: 14px; - font-size: 20px; - } - - #network.disconnected { - color: #fb958b; - } - - #bluetooth { - padding-left: 0.2em; - color: #5E81AC; - border-radius: 8px 0px 0px 8px; - padding-left: 14px; - padding-right: 14px; - font-size: 20px; - } - - #bluetooth.disconnected { - color: #fb958b; - } - - - #battery { - color: #8fbcbb; - border-radius: 0px 8px 8px 0px; - padding-right: 12px; - padding-left: 12px; - font-size: 22px; - } - - #battery.critical, - #battery.warning, - #battery.full, - #battery.plugged { - color: #8fbcbb; - padding-left: 12px; - padding-right: 12px; - font-size: 22px; - } - - #battery.charging { - font-size: 18px; - padding-right: 12px; - padding-left: 12px; - } - - #battery.full, - #battery.plugged { - font-size: 22.5px; - padding-right: 12px; - } - - @keyframes blink { - to { - background-color: rgba(30, 34, 42, 0.5); - color: #abb2bf; - } - } - - #battery.warning { - color: #ecd3a0; - } - - #battery.critical:not(.charging) { - color: #fb958b; - } - - #custom-lock { - color: #ecd3a0; - padding: 0 15px 0 15px; - margin-left: 7px; - margin-top: 7px; - margin-bottom: 7px; - } - #clock { - color: #8a909e; - font-family: Iosevka Nerd Font; - font-weight: bold; - margin-top: 7px; - margin-bottom: 7px; - } - #language { - color: #8a909e; - font-family: Iosevka Nerd Font; - font-weight: bold; - border-radius : 8px 0 0 8px; - margin-top: 7px; - margin-bottom: 7px; - } - - #custom-power-menu { - color: #8a909e; - margin-right: 12px; - border-radius: 8px; - padding: 0 6px 0 6.8px; - border-radius: 0 8px 8px 0; - margin-top: 7px; - margin-bottom: 7px; - } - #custom-wallpaper { - color: #8a909e; - padding-right: 7; - padding-left: 7; - } - #custom-wallpaper, - #language, - #custom-power-menu { - background-color: #252733; - padding: 0em 2em; - - font-size: 17px; - - padding-left: 7.5px; - padding-right: 7.5px; - - padding-top: 3px; - padding-bottom: 3px; - - margin-top: 7px; - margin-bottom: 7px; - } - - tooltip { - font-family: Iosevka Nerd Font; - border-radius: 15px; - padding: 15px; - background-color: #1f232b; - } - - tooltip label { - font-family: Iosevka Nerd Font; - padding: 5px; - } - - label:focus { - background-color: #1f232b; - } - - #tray { - margin-right: 8px; - margin-top: 7px; - margin-bottom: 7px; - font-size: 30px; - - } - - #tray > .passive { - -gtk-icon-effect: dim; - } - - #tray > .needs-attention { - -gtk-icon-effect: highlight; - background-color: #eb4d4b; - } - - #idle_inhibitor { - background-color: #242933; - } - - #idle_inhibitor.activated { - background-color: #ecf0f1; - color: #2d3436; - } - #mpris, - #custom-spotify { - color: #abb2bf; - } - - #custom-weather { - font-family: Iosevka Nerd Font; - font-size: 19px; - color: #8a909e; - } - - #custom-weather.severe { - color: #eb937d; - } - - #custom-weather.sunnyDay { - color: #c2ca76; - } - - #custom-weather.clearNight { - color: #cad3f5; - } - - #custom-weather.cloudyFoggyDay, - #custom-weather.cloudyFoggyNight { - color: #c2ddda; - } - - #custom-weather.rainyDay, - #custom-weather.rainyNight { - color: #5aaca5; - } - - #custom-weather.showyIcyDay, - #custom-weather.snowyIcyNight { - color: #d6e7e5; - } - - #custom-weather.default { - color: #dbd9d8; - } - - @define-color macchiato-red #ab4c3e; - @define-color macchiato-blue #8aadf4; - @define-color macchiato-yellow #eed49f; - @define-color macchiato-mauve #c6a0f6; - - #group-power { - margin-bottom: 0px; - } - - #group-power .text-button { - font-weight: normal; - } - - #group-power .drawer .text-button { - padding-bottom: 8.5px; - } - - #custom-suspend { color: @macchiato-red; padding-bottom: 6px; } - #custom-power { color: @macchiato-red; } - #custom-reboot { color: @macchiato-yellow; } - #custom-lock { color: @macchiato-blue; } - #custom-quit { color: @macchiato-mauve; } + modules = [ + "custom/suspend" + "custom/power" + "custom/quit" + "custom/lock" + "custom/reboot" + ]; + }; + "custom/suspend" = { + format = "󰒲"; + tooltip = false; + on-click = "systemctl suspend"; + }; + "custom/quit" = { + format = "󰗼"; + tooltip = false; + on-click = "hyprctl dispatch exit"; + }; + "custom/lock" = { + format = "󰍁"; + tooltip = false; + on-click = "hyprlock"; + }; + "custom/reboot" = { + format = "󰜉"; + tooltip = false; + on-click = "reboot"; + }; + "custom/power" = { + format = ""; + tooltip = false; + on-click = "shutdown now"; + }; + + # "custom/wallpaper" = { + # format = "󰸉"; + # on-click = "bash ~/.config/waybar/scripts/changewallpaper.sh"; + # }; + }; + }; + style = '' + * { + /* `otf-font-awesome` is required to be installed for icons */ + font-family: CaskaydiaCove NFM, JetBrainsMono Nerd Font, Iosevka Nerd Font; + font-size: 14px; + border: none; + border-radius: 0; + min-height: 0; + } + + window#waybar { + background-color: rgba(26, 27, 38, 0.5); + color: #ffffff; + transition-property: background-color; + transition-duration: 0.5s; + } + + window#waybar.hidden { + opacity: 0.1; + } + + #window { + color: #64727d; + } + + #clock, + #temperature, + #mpris, + #cpu, + #memory, + #custom-media, + #tray, + #mode, + #workspaces, + #idle_inhibitor, + #custom-launcher, + #custom-spotify, + #custom-weather, + #custom-suspend, + #group-power + #custom-power, + #custom-lock, + #custom-quit, + #custom-reboot, + #group-power.drawer + #custom-weather.severe, + #custom-weather.sunnyDay, + #custom-weather.clearNight, + #custom-weather.cloudyFoggyDay, + #custom-weather.cloudyFoggyNight, + #custom-weather.rainyDay, + #custom-weather.rainyNight, + #custom-weather.showyIcyDay, + #custom-weather.snowyIcyNight, + #custom-weather.default { + color: #e5e5e5; + border-radius: 6px; + padding: 2px 10px; + background-color: #252733; + border-radius: 8px; + font-size: 16px; + + margin-left: 4px; + margin-right: 4px; + + margin-top: 8.5px; + margin-bottom: 8.5px; + } + #temperature{ + color: #7a95c9; + } + #cpu { + color: #fb958b; + } + + #memory { + color: #a1c999; + } + + #workspaces button { + color: #7a95c9; + box-shadow: inset 0 -3px transparent; + + padding-right: 3px; + padding-left: 4px; + + margin-left: 0.1em; + margin-right: 0em; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.68); + } + + #workspaces button.active { + color: #ecd3a0; + padding-left: 1px; + padding-right: 5px; + font-family: Iosevka Nerd Font; + font-weight: bold; + font-size: 12px; + margin-left: 0em; + margin-right: 0em; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.68); + } + + /* If workspaces is the leftmost module, omit left margin */ + .modules-left > widget:first-child > #workspaces { + margin-left: 0; + } + + /* If workspaces is the rightmost module, omit right margin */ + .modules-right > widget:last-child > #workspaces { + margin-right: 0; + } + + #custom-launcher { + margin-left: 12px; + + padding-right: 18px; + padding-left: 14px; + + font-size: 22px; + + color: #7a95c9; + + margin-top: 8.5px; + margin-bottom: 8.5px; + } + #bluetooth, + #backlight, + #battery, + #pulseaudio, + #network { + background-color: #252733; + padding: 0em 2em; + + font-size: 14px; + + padding-left: 7.5px; + padding-right: 7.5px; + + padding-top: 3px; + padding-bottom: 3px; + + margin-top: 7px; + margin-bottom: 7px; + + font-size: 20px; + } + + #pulseaudio { + color: #81A1C1; + padding-left: 9px; + font-size: 16px; + } + + #pulseaudio.muted { + color: #fb958b; + padding-left: 9px; + font-size: 16px; + } + + #backlight { + color: #ecd3a0; + padding-right: 5px; + padding-left: 8px; + font-size: 21.2px; + } + + #network { + padding-left: 0.2em; + color: #5E81AC; + border-radius: 8px 0px 0px 8px; + padding-left: 14px; + padding-right: 14px; + font-size: 20px; + } + + #network.disconnected { + color: #fb958b; + } + + #bluetooth { + padding-left: 0.2em; + color: #5E81AC; + border-radius: 8px 0px 0px 8px; + padding-left: 14px; + padding-right: 14px; + font-size: 20px; + } + + #bluetooth.disconnected { + color: #fb958b; + } + + + #battery { + color: #8fbcbb; + border-radius: 0px 8px 8px 0px; + padding-right: 12px; + padding-left: 12px; + font-size: 22px; + } + + #battery.critical, + #battery.warning, + #battery.full, + #battery.plugged { + color: #8fbcbb; + padding-left: 12px; + padding-right: 12px; + font-size: 22px; + } + + #battery.charging { + font-size: 18px; + padding-right: 12px; + padding-left: 12px; + } + + #battery.full, + #battery.plugged { + font-size: 22.5px; + padding-right: 12px; + } + + @keyframes blink { + to { + background-color: rgba(30, 34, 42, 0.5); + color: #abb2bf; + } + } + + #battery.warning { + color: #ecd3a0; + } + + #battery.critical:not(.charging) { + color: #fb958b; + } + + #custom-lock { + color: #ecd3a0; + padding: 0 15px 0 15px; + margin-left: 7px; + margin-top: 7px; + margin-bottom: 7px; + } + #clock { + color: #8a909e; + font-family: Iosevka Nerd Font; + font-weight: bold; + margin-top: 7px; + margin-bottom: 7px; + } + #language { + color: #8a909e; + font-family: Iosevka Nerd Font; + font-weight: bold; + border-radius : 8px 0 0 8px; + margin-top: 7px; + margin-bottom: 7px; + } + + #custom-power-menu { + color: #8a909e; + margin-right: 12px; + border-radius: 8px; + padding: 0 6px 0 6.8px; + border-radius: 0 8px 8px 0; + margin-top: 7px; + margin-bottom: 7px; + } + #custom-wallpaper { + color: #8a909e; + padding-right: 7; + padding-left: 7; + } + #custom-wallpaper, + #language, + #custom-power-menu { + background-color: #252733; + padding: 0em 2em; + + font-size: 17px; + + padding-left: 7.5px; + padding-right: 7.5px; + + padding-top: 3px; + padding-bottom: 3px; + + margin-top: 7px; + margin-bottom: 7px; + } + + tooltip { + font-family: Iosevka Nerd Font; + border-radius: 15px; + padding: 15px; + background-color: #1f232b; + } + + tooltip label { + font-family: Iosevka Nerd Font; + padding: 5px; + } + + label:focus { + background-color: #1f232b; + } + + #tray { + margin-right: 8px; + margin-top: 7px; + margin-bottom: 7px; + font-size: 30px; + + } + + #tray > .passive { + -gtk-icon-effect: dim; + } + + #tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #eb4d4b; + } + + #idle_inhibitor { + background-color: #242933; + } + + #idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; + } + #mpris, + #custom-spotify { + color: #abb2bf; + } + + #custom-weather { + font-family: Iosevka Nerd Font; + font-size: 19px; + color: #8a909e; + } + + #custom-weather.severe { + color: #eb937d; + } + + #custom-weather.sunnyDay { + color: #c2ca76; + } + + #custom-weather.clearNight { + color: #cad3f5; + } + + #custom-weather.cloudyFoggyDay, + #custom-weather.cloudyFoggyNight { + color: #c2ddda; + } + + #custom-weather.rainyDay, + #custom-weather.rainyNight { + color: #5aaca5; + } + + #custom-weather.showyIcyDay, + #custom-weather.snowyIcyNight { + color: #d6e7e5; + } + + #custom-weather.default { + color: #dbd9d8; + } + + @define-color macchiato-red #ab4c3e; + @define-color macchiato-blue #8aadf4; + @define-color macchiato-yellow #eed49f; + @define-color macchiato-mauve #c6a0f6; + + #group-power { + margin-bottom: 0px; + } + + #group-power .text-button { + font-weight: normal; + } + + #group-power .drawer .text-button { + padding-bottom: 8.5px; + } + + #custom-suspend { color: @macchiato-red; padding-bottom: 6px; } + #custom-power { color: @macchiato-red; } + #custom-reboot { color: @macchiato-yellow; } + #custom-lock { color: @macchiato-blue; } + #custom-quit { color: @macchiato-mauve; } ''; }; -} \ No newline at end of file +}