diff --git a/commons/programs/hyprland.nix b/commons/programs/hyprland.nix index 65e9267..4859801 100644 --- a/commons/programs/hyprland.nix +++ b/commons/programs/hyprland.nix @@ -2,7 +2,6 @@ wayland.windowManager.hyprland = { enable = true; - settings = { "$mod" = "SUPER"; # Windows key on classic keyboards @@ -22,6 +21,8 @@ "$mod, code:65, exec, rofi -show run" + "$mod, V, toggleFloating" + # Move to workspace "$mod, code:10, workspace, 1" "$mod, code:11, workspace, 2" @@ -47,11 +48,19 @@ # Move to adjacent workspaces "$mod, code:113, workspace, -1" "$mod, code:114, workspace, +1" + + # Function keys + ", code:121, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + ", code:122, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" + ", code:123, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+" + ", code:198, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" + ", code:232, exec, brightnessctl s 5%-" + ", code:233, exec, brightnessctl s 5%+" ]; bindm = [ - "$mod, mouse:272, moveWindow" - "$mod, mouse:273, moveWindow" + "$mod, mouse:272, moveactive" + "$mod, mouse:273, resizeactive" ]; cursor = { @@ -122,6 +131,13 @@ gestures = { workspace_swipe = "on"; }; + + exec-once = [ + # Set Hyprland cursor the same as GTK apps + "hyprctl setcursor \"Bibata-Modern-Classic\" 24" + "swww-daemon" + "waybar" + ]; }; }; } diff --git a/commons/programs/waybar.nix b/commons/programs/waybar.nix new file mode 100644 index 0000000..fc706b5 --- /dev/null +++ b/commons/programs/waybar.nix @@ -0,0 +1,187 @@ +{ ... }: +{ + programs.waybar = { + enable = true; + settings = [ + { + layer = "top"; + position = "top"; + modules-left = [ + "hyprland/workspaces" + ]; + modules-center = [ "hyprland/window" ]; + modules-right = [ + "custom/exit" + "pulseaudio" + "network" + "battery" + "tray" + "clock" + ]; + + "hyprland/workspaces" = { + format = "{name}"; + format-icons = { + default = " "; + active = " "; + urgent = " "; + }; + }; + "clock" = { + format = '' {:L%H:%M}''; + tooltip = true; + tooltip-format = "{:%A, %d.%B %Y }\n{calendar}"; + }; + "hyprland/window" = { + max-length = 22; + separate-outputs = false; + icon = true; + icon-size = 18; + }; + "network" = { + format-icons = [ + "󰤯 " + "󰤟 " + "󰤢 " + "󰤥 " + "󰤨 " + ]; + format-ethernet = " {bandwidthDownOctets}"; + format-wifi = "{icon} {essid}"; + format-disconnected = "󰤮 "; + tooltip = true; + tooltip-format = "ip : {ipaddr}\nstrength : {signaldBm}dBm"; + on-click = "nm-connection-editor"; + }; + "tray" = { + spacing = 12; + }; + "pulseaudio" = { + format = "{icon} {volume}% {format_source}"; + format-bluetooth = "{volume}% {icon} {format_source}"; + format-bluetooth-muted = " {icon} {format_source}"; + format-muted = " {format_source}"; + format-source = " {volume}%"; + format-source-muted = " "; + format-icons = { + headphone = " "; + hands-free = " "; + headset = " "; + phone = " "; + portable = " "; + car = " "; + default = [ + " " + " " + " " + ]; + }; + on-click = "pavucontrol"; + }; + "custom/exit" = { + tooltip = false; + format = " "; + on-click = "shutdown now"; + }; + "battery" = { + states = { + warning = 30; + critical = 15; + }; + format = "{icon} {capacity}%"; + format-charging = "󰂄 {capacity}%"; + format-plugged = "󱘖 {capacity}%"; + format-icons = [ + "󰁺" + "󰁻" + "󰁼" + "󰁽" + "󰁾" + "󰁿" + "󰂀" + "󰂁" + "󰂂" + "󰁹" + ]; + tooltip = false; + }; + } + ]; + + style = '' + * { + border: none; + font-family: Ubuntu Nerd Font; + font-size: 13px; + border-radius: 0px; + background: transparent; + min-height: 0px; + color: white; + } + + tooltip { + color: white; + background: black; + } + + window#waybar { + margin: 5px 0 0 0; + background: linear-gradient(180deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%); + color: black; + } + + #window { + font-weight: bold; + } + + #workspaces button { + padding: 0 5px; + background: transparent; + color: white; + border-top: 2px solid transparent; + } + + #workspaces button.focused { + background: #64727D; + border-bottom: 3px solid white; + } + + #workspaces button.active { + border-bottom: 1px solid white; + } + + #clock, #battery, #network, #pulseaudio, #tray { + padding: 0 3px; + margin: 0 2px; + } + + #clock { + font-weight: bold; + } + + #battery { + } + + #battery.charging { + } + + #cpu { + } + + #memory { + } + + #network { + } + + #pulseaudio { + } + + #pulseaudio.muted { + } + + #tray { + } + ''; + }; +} diff --git a/commons/programs/zsh.nix b/commons/programs/zsh.nix index 1184ba1..f1cccdd 100644 --- a/commons/programs/zsh.nix +++ b/commons/programs/zsh.nix @@ -4,6 +4,7 @@ enableCompletion = true; shellAliases = { update = "sudo nixos-rebuild switch --flake /home/zuma/nix_files#t0urn3s0l"; + connect-h4ppy = "mosh --ssh=\"ssh -p 72\" globuzma@87.231.223.91"; }; oh-my-zsh = { enable = true; diff --git a/hosts/t0urn3s0l/configuration.nix b/hosts/t0urn3s0l/configuration.nix index 51d5780..21b7f0b 100644 --- a/hosts/t0urn3s0l/configuration.nix +++ b/hosts/t0urn3s0l/configuration.nix @@ -1,7 +1,3 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - { config, pkgs, inputs, ... }: { @@ -18,10 +14,6 @@ networking.hostName = "t0urn3s0l"; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - # Enable Nix Flakes nix.settings.experimental-features = ["nix-command" "flakes"]; @@ -137,33 +129,55 @@ # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ - # GUIs - gnome-keyring # Keyring for secrets - seahorse # To edit said secrets - networkmanagerapplet # To get wifi to work -> Go into wifi connection and select store password for all users - bitwarden-desktop # For my sweet passwords - rofi-wayland # Application launcher - xfce.thunar # GUI Filebrowser - xfce.xfconf # needed by xfce.thunar - kitty # Hyprland default terminal - firefox # Web browser - cinny-desktop # Matrix Client - eog # Image viewer - dracula-theme # Dark theme - dracula-icon-theme # Dark Icon theme - mpv # Video player - pavucontrol # Volume control + # GUIs + gnome-keyring # Keyring for secrets + seahorse # To edit said secrets + networkmanagerapplet # To get wifi to work -> Go into wifi connection and select store password for all users + bitwarden-desktop # For my sweet passwords + rofi-wayland # Application launcher + xfce.thunar # GUI Filebrowser + xfce.xfconf # needed by xfce.thunar + kitty # Hyprland default terminal + firefox # Web browser + cinny-desktop # Matrix Client + eog # Image viewer (Eye Of Gnome) + dracula-theme # Dark theme + dracula-icon-theme # Dark Icon theme + mpv # Video player + vlc # Media player a bit more fancy than mpv + pavucontrol # Volume control + zotero # For research articles + gimp # Image Editing + qbittorrent # Torrent downloader for ... Linux isos. + evince # PDF viewer + gparted # Partitioner tool + obsidian # PKB and more than that + waybar # A bar. + bibata-cursors # Pretty cursors + kdenlive # Video editing software - # Shell apps - zsh # Favorite shell so far - starship # Shell prompt that goes fast - neovim # <3 - git # <3 bis - btop # HTOP on steroids - lshw # List all your hardware + # Shell stuff + zsh # Favorite shell so far + starship # Shell prompt that goes fast + neovim # <3 + git # <3 bis + btop # HTOP on steroids + lshw # List all your hardware + neofetch # To show off + brightnessctl # To control brightness + p7zip # For all my zip needs + cmatrix # Always need it to show off + exfat # Needed to format Nikon SD Card + gptfdisk # Tools for partitioning + mosh # Mobile shell, great ssh replacement for unstable connection + ffmpeg # Video and sound editiing + pywal16 # Generate 16 palette from image + wev # Utility to find which key you pressed - # Utilities - wl-clipboard # Clipboard manager + # Utilities + wl-clipboard # Clipboard manager + swww # Wallpaper engine + pulseaudio-dlna # To play sound on sound system ]; services.gvfs.enable = true; # Enable Trash so that if I delete my nix files without having saved them I can backup ......... @@ -173,6 +187,12 @@ services.gnome.gnome-keyring.enable = true; security.pam.services.hyprland.enableGnomeKeyring = true; + fonts.packages = with pkgs; [ + nerd-fonts.fira-code + nerd-fonts.ubuntu + nerd-fonts.droid-sans-mono + ]; + # Some programs need SUID wrappers, can be configured further or are # started in user sessions. # programs.mtr.enable = true; @@ -185,6 +205,7 @@ # Enable the OpenSSH daemon. # services.openssh.enable = true; + programs.ssh.startAgent = true; # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; diff --git a/hosts/t0urn3s0l/home.nix b/hosts/t0urn3s0l/home.nix index 6fd358d..19508b1 100644 --- a/hosts/t0urn3s0l/home.nix +++ b/hosts/t0urn3s0l/home.nix @@ -11,6 +11,7 @@ ../../commons/programs/zsh.nix ../../commons/programs/neovim.nix ../../commons/programs/kitty.nix + ../../commons/programs/waybar.nix ]; qt = { @@ -35,5 +36,13 @@ }; }; + home.pointerCursor = { + gtk.enable = true; + + package = pkgs.bibata-cursors; + name = "Bibata-Modern-Classic"; + size = 24; + }; + programs.home-manager.enable = true; }