configuring hyprland more

This commit is contained in:
Chris Cochrun 2022-12-06 15:18:25 -06:00
parent 6942535fb7
commit 6cdfe3e563
11 changed files with 982 additions and 527 deletions

View file

@ -39,6 +39,10 @@ Both include the home-manager module. Primarily I chose that route so that I cou
url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs";
};
eww = {
url = "github:elkowar/eww";
inputs.nixpkgs.follows = "nixpkgs";
};
emacs = {
url = "github:nix-community/emacs-overlay";
inputs.nixpkgs.follows = "nixpkgs";
@ -203,7 +207,7 @@ services.greetd = {
enable = true;
settings = rec {
initial_session = {
command = "startplasma-wayland";
command = "/home/chris/bin/hyprland";
user = "chris";
};
default_session = initial_session;
@ -416,7 +420,7 @@ libnotify
rofi-wayland
wofi
waybar
eww
eww-wayland
wlrctl
hyprpaper
swaylock-fancy

View file

@ -1,27 +1,52 @@
/** EWW.SCSS
/**
Created by saimoom **/
*{
all: unset;
font-family: feather;
font-family: DaddyTimeMono NF;
font-family: mononoki Nerd Font;
}
$background: rgba(00, 00, 00, 0.7);
$widget-background: rgba(30, 30, 30, 0.4);
$shadow: #0B0B0B;
$grey: #606060;
$black: #282A36;
$red: #F37F97;
$green: #5ADECD;
$orange: #F2A272;
$blue: #8897F4;
$purple: #C574DD;
$teal: #79E6F3;
$white: #FDFDFD;
/** General **/
.bar_class {
background-color: #0f0f17;
border-radius: 16px;
background-color: $background;
border-radius: 20px 20px 20px 20px;
}
.module {
margin: 0px 0px 0px 0px;
border-radius: 10px 16px 0px 10px;
border-radius: 10px 10px 0px 10px;
}
.side{
background-color: $background;
border-width: 0px;
padding: 0px 30px 0px 30px;
}
.center_modules {
margin: 0px 0px 0px 0px;
border-radius: 0px 0px 0px 0px;
}
/** tooltip!! **/
tooltip.background {
background-color: #0f0f17;
background-color: $background;
font-size: 18;
border-radius: 10px;
color: #bfc9db;
color: $white;
}
tooltip label {
@ -31,233 +56,195 @@ tooltip label {
/** Widgets **/
.clock_time_sep {
font-size: 16;
color: #bfc9db;
margin: 0px 4px 1px 4px;
}
.clock_time_class, .clock_minute_class {
font-size: 23;
font-size: 28;
}
.clock_date_class {
font-size: 18;
font-size: 24;
margin: 0px 20px 0px -1px;
color: #d7beda;
color: $red;
}
.clock_minute_class {
margin: 0px 20px 0px 3px;
color: #bfc9db;
}
.clock_time_class {
color: #bfc9db;
color: $white;
font-weight: bold;
margin: 0px 5px 0px 0px;
margin: 0px 20px 0px 5px;
}
.notif_button {
font-size: 28;
margin: 0px 20px 0px 0px;
color: $white;
}
.membar {
color: #e0b089;
background-color: #38384d;
color: $orange;
background-color: $widget-background;
border-radius: 10px;
}
.batbar {
color: #afbea2;
background-color: #38384d;
color: $purple;
background-color: $widget-background;
border-radius: 10px;
}
.brightbar trough highlight {
background-image: linear-gradient(to right, #e4c9af 30%, #f2cdcd 50%, #e0b089 100% *50);
background-image: linear-gradient(to right, $orange 30%, #f2cdcd 50%, $orange 100% *50);
border-radius: 10px;
}
.volbar trough highlight {
background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
background-image: linear-gradient(to right, #afcee0 30%, #92B6F4 50%, #77a5bf 100% *50);
border-radius: 10px;
}
.volume_icon {
font-size: 22;
color: #a1bdce;
color: $blue;
margin: 0px 10px 0px 10px;
}
.module_essid {
font-size: 18;
color: #a1bdce;
color: $blue;
margin: 0px 10px 0px 0px;
}
.module-wif {
font-size: 22;
color: #a1bdce;
border-radius: 100%;
color: $blue;
margin: 0px 10px 0px 5px;
}
.iconlauncher {
color: $white;
font-size: 36px;
margin: 0px 10px 0px 15px;
}
.iconsearch {
color: $white;
font-size: 24px;
}
.iconmem {
color: #e0b089;
color: $orange;
}
.iconbat {
color: #afbea2;
color: $purple;
}
.iconbat, .iconmem {
font-size: 15;
margin: 10px;
margin: 15px;
}
.bright_icon {
font-size: 22;
color: #e4c9af;
color: $orange;
margin: 0px 10px 0px 10px;
}
.separ {
color: #3e424f;
color: $grey;
font-weight: bold;
font-size: 22px;
margin: 0px 8px 0px 8px;
}
.launcher_module {
background-color: rgba(00, 00, 00, 0.0);
}
.mem_module {
background-color: #0f0f17;
background-color: rgba(00, 00, 00, 0.0);
border-radius: 16px;
margin: 0px 10px 0px 3px;
}
.bat_module {
background-color: #0f0f17;
background-color: rgba(00, 00, 00, 0.0);
border-radius: 16px;
margin: 0px 10px 0px 10px;
}
scale trough {
all: unset;
background-color: #22242b;
box-shadow: 0 2px 3px 2px #06060b;
border-radius: 16px;
min-height: 10px;
min-width: 70px;
margin: 0px 10px 0px 0px;
}
.works {
font-size: 27px;
font-weight: normal;
margin: 5px 0px 0px 20px;
background-color: #0f0f17;
font-size: 28px;
font-weight: normal;
margin: 10px 0px 0px 10px;
background-color: rgba(00, 00, 00, 0.0);
}
.0 , .01, .02, .03, .04, .05, .06,
.011, .022, .033, .044, .055, .066{
margin: 0px 10px 0px 0px;
.011, .022, .033, .044, .055, .066 {
margin: 0px 7px 0px 0px;
}
/* Unoccupied */
.0 {
color: #3e424f;
color: $grey;
}
/* Occupied */
.01, .02, .03, .04, .05, .06 {
color: #bfc9db;
.01, .02, .03, .04, .05, .06, .07, .08, .09 {
color: $white;
}
/* Focused */
.011, .022, .033, .044, .055, .066 {
color: #a1bdce;
.011, .022, .033, .044, .055, .066, .077, .088, .099{
color: $purple;
}
.song_cover_art {
background-size: cover;
background-position: center;
min-height: 24px;
min-width: 24px;
margin: 10px;
border-radius: 100px;
}
.song {
color: #a1bdce;
font-size : 18px;
font-weight : bold;
margin : 3px 5px 0px 0px;
}
.song_btn_play {
color: #a1bdce;
font-size : 28px;
margin : 3px 0px 0px 5px;
}
.song_btn_prev, .song_btn_next {
color: #bfc9db;
font-size : 24px;
margin : 3px 0px 0px 5px;
}
// Calendar
.cal {
background-color: #0f0f17;
font-family: JetBrainsMono Nerd Font;
background-color: $background;
font-family: mononoki Nerd Font;
font-size: 18px;
font-weight: normal;
border-radius: 25px;
.cal-in {
padding: 0px 10px 0px 10px;
color: #bfc9db;
padding: 10px 10px 10px 10px;
color: $white;
.cal {
&.highlight {
padding: 20px;
}
padding: 5px 5px 5px 5px;
padding: 10px 10px 10px 10px;
margin-left: 10px;
}
}
}
calender {
color: #bfc9db;
color: $blue;
}
calendar:selected {
color: #a1bdce;
color: $blue;
}
calendar.header {
color: #a1bdce;
color: $blue;
font-weight: bold;
}
calendar.button {
color: #afbea2;
color: $green;
}
calendar.highlight {
color: #a1bdce;
color: $blue;
font-weight: bold;
}
calendar:indeterminate {
color: #bfc9db;
color: $black;
}
.sys_sep {
color: #38384d;
color: $widget-background;
font-size: 18;
margin: 0px 10px 0px 10px;
}
.sys_text_bat_sub, .sys_text_mem_sub {
font-size: 16;
color: #bbc5d7;
color: $white;
margin: 5px 0px 0px 25px;
}
.sys_text_bat, .sys_text_mem {
@ -270,23 +257,24 @@ color: #bfc9db;
margin: 30px;
}
.sys_win {
background-color: #0f0f17;
background-color: $background;
border-radius: 25px;
}
.sys_bat {
color: #afbea2;
background-color: #38384d;
color: $green;
background-color: $widget-background;
border-radius: 10px;
}
.sys_mem {
color: #e4c9af;
background-color: #38384d;
color: $orange;
background-color: $widget-background;
border-radius: 10px;
}
.sys_icon_bat, .sys_text_bat {
color: #afbea2;
color: $green;
}
.sys_icon_mem, .sys_text_mem {
color: #e4c9af;
color: $orange;
}
.sys_bat_box {
border-radius: 16px;
@ -298,78 +286,30 @@ color: #bfc9db;
}
.music_pop {
background-color: #0f0f17;
border-radius: 16px;
}
.music_cover_art {
background-size: cover;
background-position: center;
min-height: 100px;
box-shadow: 5px 5px 5px 5px #06060b;
min-width: 170px;
margin: 20px;
border-radius: 20px;
}
.music {
color: #a1bdce;
.app-name {
color: $blue;
font-size : 20px;
font-weight : bold;
margin : 20px 0px 0px -15px;
margin : 10px 0px 0px 0px;
}
.music_artist {
color: #bbc5d7;
font-size : 16px;
font-weight : normal;
margin : 0px 0px 0px 0px;
.app-icon {
margin : 8px 10px 0px 0px;
}
.music_btn_prev, .music_btn_play, .music_btn_next {
font-family: Iosevka Nerd Font;
}
.music_btn_prev {
color: #bbc5d7;
font-size : 32px;
font-weight : normal;
margin: 0px 0px 0px 0px;
}
.music_btn_play {
color: #a1bdce;
font-size : 48px;
font-weight : normal;
margin: 0px 0px 0px 0px;
}
.music_btn_next {
color: #bbc5d7;
font-size : 32px;
font-weight : normal;
margin: 0px 0px 0px 0px;
.app-button {
color: $blue;
font-size : 30px;
font-weight : bold;
margin : 0px 15px 0px 15px;
}
.music_bar scale trough highlight {
all: unset;
background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
border-radius: 24px;
}
.music_bar scale trough {
all: unset;
background-color: #232232;
box-shadow: 0 6px 5px 2px #06060b;
border-radius: 24px;
min-height: 13px;
min-width: 190px;
margin : -10px 10px 20px 0px;
.launcher-icon {
margin : 5px -5px 10px 15px;
}
.audio-box {
background-color: #0f0f17;
background-color: $background;
border-radius: 16px;
}
.speaker_icon {
@ -383,7 +323,7 @@ color: #bfc9db;
}
.speaker_text {
color: #a1bdce;
color: $blue;
font-size : 26px;
font-weight : bold;
margin: 20px 0px 0px 0px;
@ -391,13 +331,13 @@ color: #bfc9db;
.speaker_bar scale trough highlight {
all: unset;
background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
background-image: linear-gradient(to right, #afcee0 30%, #92B6F4 50%, #77a5bf 100% *50);
border-radius: 24px;
}
.speaker_bar scale trough {
all: unset;
background-color: #232232;
box-shadow: 0 6px 5px 2px #06060b;
background-color: $widget-background;
box-shadow: 0 6px 5px 2px $shadow;
border-radius: 24px;
min-height: 13px;
min-width: 120px;
@ -418,7 +358,7 @@ color: #bfc9db;
}
.mic_text {
color: #a1bdce;
color: $blue;
font-size : 26px;
font-weight : bold;
margin: 0px 0px 0px 0px;
@ -426,13 +366,13 @@ color: #bfc9db;
.mic_bar scale trough highlight {
all: unset;
background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
background-image: linear-gradient(to right, #afcee0 30%, #92B6F4 50%, #77a5bf 100% *50);
border-radius: 24px;
}
.mic_bar scale trough {
all: unset;
box-shadow: 0 6px 5px 2px #06060b;
background-color: #232232;
box-shadow: 0 6px 5px 2px $shadow;
background-color: $widget-background;
border-radius: 24px;
min-height: 13px;
min-width: 120px;
@ -440,7 +380,260 @@ color: #bfc9db;
}
.audio_sep {
color: #38384d;
color: $black;
font-size: 18;
margin : 0px 0px 0px 0px;
}
// Music
.music-player {
all: unset;
background-color: $widget-background;
padding: 0px 25px 0px 17px;
border-radius: 12px;
box-shadow: 0px 0px 6px 6px $shadow;}
.album_art {
background-size: cover;
background-position: center;
border-radius: 12px;
margin: 2rem 1rem 1.5rem 1rem;
padding: 4rem;}
.song {
font-family: JetBrainsMono Nerd Font Mono;
font-weight: bold;
color: $white;
font-size : 1.2em;
}
.artist {
font-family: JetBrainsMono Nerd Font;
font-style: italic;
font-size: 1.1em;
color: $blue;
margin-top: -5px;
}
.btn_prev, .btn_play, .btn_next {
font-family: JetBrainsMono Nerd Font Mono;
color: $purple;
font-size: 25px;
}
.metric-player scale trough highlight {
all: unset;
border-radius: 10px;
background-color: $blue;
}
// weather
.weather {
all: unset;
background-color: $widget-background;
border-radius: 12px;
padding: 23px 37px 20px 37px;
box-shadow: 0px 0px 6px 6px rgb(0, 0, 0, .4);}
.iconweather {
font-family: JetBrainsMono Nerd Font;
font-size : 44px;
font-weight : normal;
margin : 0px -5px 0px 20px;
}
.label_temp {
color : $blue;
font-size : 35px;
font-weight : bold;
margin : 0px 0px 0px 0px;
font-family: Furamono Nerd Font;
}
.label_stat {
color : $blue;
font-size : 38px;
font-weight : bold;
}
.label_quote {
color : $blue;
font-size : 18px;
padding-bottom: 10px;
font-weight : normal;
}
.date {
all: unset;
background-color: $widget-background;
padding: 33px 27px 27px 27px;
border-radius: 12px;
color: $blue;
font-size : 18px;
font-style : italic;
font-family: Cartograph CF;
box-shadow: 0px 0px 6px 6px rgb(0, 0, 0, .4);}
.stats-box {
all: unset;
background-color: $widget-background;
padding: 20px 25px 20px 25px;
border-radius: 12px;
box-shadow: 0px 0px 6px 6px rgb(0, 0, 0, .4);}
.stats-icon {
font-size: 23px;
color: $blue;
font-family: JetBrainsMono Nerd Font Mono;
}
scale trough {
all: unset;
background-color: $widget-background;
box-shadow: 0 2px 3px 2px $shadow;
border-radius: 16px;
min-height: 10px;
min-width: 70px;
margin: 0px 5px 0px 10px;
}
.scale highlight {
background-image: linear-gradient(to right, #afcee0 30%, #92B6F4 50%, #77a5bf 100% *50);
border-radius: 15px;
}
.foo {
font-size: 40px;
padding-top: 10px;
}
.buttons {
opacity: 1;
background-color: $widget-background;
border-radius: 12px;
padding: 15px 0px 15px 0px;
font-family: JetBrainsMono Nerd Font Mono;
margin-bottom: 30px;
box-shadow: 0px 0px 6px 6px rgb(0, 0, 0, .4);}
.poweroff, .reboot, .firmware, .exit, .restart {
margin: 0px 16px 0px 16px;
padding: 2px 15px 2px 9px;
font-family: mononoki Nerd Font;
border-radius: 25px;
font-size: 24px;
color: $black;
}
.poweroff {
background-color: $red;
}
.reboot {
background-color: $green;
}
.firmware {
background-color: $orange;
}
.exit {
background-color: $purple;
}
.restart {
background-color: $blue;
}
.fetch {
margin-top: 35px;
font-size: 15px;
border-radius: 12px;
background-color: $widget-background;
padding: 30px 55px 30px 55px;
box-shadow: 0px 0px 6px 6px rgb(0, 0, 0, .4);}
.wm {
font-family: "JetBrainsMono Nerd Font";
font-weight: bold;
color: $red;
}
.host {
font-family: "JetBrainsMono Nerd Font";
font-weight: bold;
color: $purple;
}
.uptime {
font-family: "JetBrainsMono Nerd Font";
font-weight: bold;
color: $orange;
}
.packages {
font-family: "JetBrainsMono Nerd Font";
font-weight: bold;
color: $blue;
}
.kernal {
font-family: "JetBrainsMono Nerd Font";
font-weight: bold;
color: $green;
}
.notification {
all: unset;
background-color: $widget-background;
padding: 20px 25px 20px 17px;
margin: 0px 15px 0px 15px;
border-radius: 12px;
border-width: 2px;
border-style: solid;
border-color: $red;}
.notification-header {
all: unset;
background-color: $widget-background;
padding: 20px 25px 20px 17px;
margin: 20px 15px 10px 15px;
border-radius: 12px;
border-width: 2px;
border-style: solid;
border-color: $green;}
.notification-icon {
color: $white;
font-size: 36px;
margin: 0px 20px 0px 10px;
}
.notification-appname {
font-family: "Inter Nerd Font";
font-size: 14px;
font-weight: bold;
color: $orange;
}
.notification-summary {
font-family: "Inter Nerd Font";
font-size: 18px;
font-weight: bold;
color: $white;
}
.notification-body {
font-family: "Inter Nerd Font";
font-size: 14px;
color: $white;
}
.notification-label {
font-family: "Mononoki Nerd Font";
font-size: 30px;
color: $blue;
margin: 0px 50px 0px 0px;
}
.notification-action {
font-family: "Mononoki Nerd Font";
font-size: 36px;
color: $white;
margin: 0px 0px 0px 20px;
}

View file

@ -1,131 +1,91 @@
;; Variables
(defpoll clock_time :interval "5m" "date +\%I")
(defpoll clock_minute :interval "5s" "date +\%M")
(defpoll clock_date :interval "10h" "date '+%d/%m'")
(defpoll volume_percent :interval "3s" "amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
(defpoll mic_percent :interval "3s" "amixer -D pulse sget Capture | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
(defpoll brightness_percent :interval "5s" "brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}' | tr -d '%'")
(defpoll battery :interval "15s" "./scripts/battery --bat")
(defpoll battery_status :interval "1m" "./scripts/battery --bat-st")
(defpoll memory :interval "15s" "scripts/memory")
(defpoll memory_used_mb :interval "2m" "scripts/mem-ad used")
(defpoll memory_total_mb :interval "2m" "scripts/mem-ad total")
(defpoll memory_free_mb :interval "2m" "scripts/mem-ad free")
(include "sidebar.yuck")
(include "notifications.yuck")
(defpoll clock_time :interval "5s" "date '+\%l\%M \%p'")
(defpoll clock_date :interval "1h" "date '+%b %d, %Y'")
(defpoll calendar_day :interval "2h" "date '+%d'")
(defpoll calendar_year :interval "2h" "date '+%Y'")
(defpoll volume_percent :interval "1s" "scripts/sbvol --get")
(defpoll mic_percent :interval "3s" "amixer -D pulse sget Capture | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%' | head -n 1")
(defpoll brightness_percent :interval "5s" "light")
(defpoll COL_WLAN :interval "1m" "scripts/wifi --COL")
(defpoll ESSID_WLAN :interval "1m" "scripts/wifi --ESSID")
(defpoll WLAN_ICON :interval "1m" "scripts/wifi --ICON")
(deflisten workspace "scripts/workspace")
(deflisten appname "scripts/appname")
(defvar vol_reveal false)
(defvar br_reveal false)
(defvar music_reveal false)
(defvar control_reveal false)
(defvar wifi_rev false)
(defvar time_rev false)
(deflisten workspace "scripts/workspace")
(defvar eww "$HOME/.local/bin/eww/eww -c $HOME/.config/eww/bar")
(defpoll COL_WLAN :interval "1m" "~/.config/eww/bar/scripts/wifi --COL")
(defpoll ESSID_WLAN :interval "1m" "~/.config/eww/bar/scripts/wifi --ESSID")
(defpoll WLAN_ICON :interval "1m" "~/.config/eww/bar/scripts/wifi --ICON")
(defpoll song :interval "2s" "~/.config/eww/bar/scripts/music_info --song")
(defpoll song_artist :interval "2s" "~/.config/eww/bar/scripts/music_info --artist")
(defpoll current_status :interval "1s" "~/.config/eww/bar/scripts/music_info --time")
(defpoll song_status :interval "2s" "~/.config/eww/bar/scripts/music_info --status")
(defpoll cover_art :interval "2s" "~/.config/eww/bar/scripts/music_info --cover")
(defpoll calendar_day :interval "20h" "date '+%d'")
(defpoll calendar_year :interval "20h" "date '+%Y'")
;; widgets
(defwidget wifi []
(eventbox :onhover "${eww} update wifi_rev=true"
:onhoverlost "${eww} update wifi_rev=false"
(box :vexpand "false" :hexpand "false" :space-evenly "false"
(button :class "module-wif" :onclick "networkmanager_dmenu" :wrap "false" :limit-width 12 :style "color: ${COL_WLAN};" WLAN_ICON)
(revealer :transition "slideright"
:reveal wifi_rev
:duration "350ms"
(label :class "module_essid"
:text ESSID_WLAN
(defwidget launcher []
(box
:class "launcher_module"
:orientation "h"
)))))
(button
:onclick "rofi -no-lazy-grab -show drun -theme ~/.config/hypr/themes/neon/rofi/launcher.rasi &"
(image
:class "launcher-icon"
:path "favicon.ico"
:image-width 36))
(button
:onclick "rofi -show filebrowser &"
:class "iconsearch" "")
))
(defwidget workspaces []
(literal :content workspace))
(literal
:content workspace))
(defwidget bat []
(box :class "bat_module" :vexpand "false" :hexpand "false"
(circular-progress :value battery
:class "batbar"
:thickness 4
(button
:class "iconbat"
:limit-width 2
:tooltip "battery on ${battery}%"
:show_truncated false
:onclick "$HOME/.config/eww/bar/scripts/pop system"
:wrap false
""))))
(defwidget mem []
(box :class "mem_module" :vexpand "false" :hexpand "false"
(circular-progress :value memory
:class "membar"
:thickness 4
(button
:class "iconmem"
:limit-width 2
:tooltip "using ${memory}% ram"
:onclick "$HOME/.config/eww/bar/scripts/pop system"
:show_truncated false
:wrap false
""))))
(defwidget sep []
(box :class "module-2" :vexpand "false" :hexpand "false"
(label :class "separ" :text "|")))
(defwidget clock_module []
(eventbox :onhover "${eww} update time_rev=true"
:onhoverlost "${eww} update time_rev=false"
(box :class "module" :space-evenly "false" :orientation "h" :spacing "3"
(label :text clock_time :class "clock_time_class" )
(label :text "" :class "clock_time_sep" )
(label :text clock_minute :class "clock_minute_class")
(revealer :transition "slideleft"
:reveal time_rev
:duration "350ms"
(button :class "clock_date_class"
:onclick "$HOME/.config/eww/bar/scripts/pop calendar" clock_date
)
))))
(defwidget volume []
(eventbox :onhover "${eww} update vol_reveal=true"
:onhoverlost "${eww} update vol_reveal=false"
(box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3"
(button :onclick "scripts/pop audio" :class "volume_icon" "")
(revealer :transition "slideleft"
:reveal vol_reveal
:duration "350ms"
(scale :class "volbar"
:value volume_percent
(defwidget appnames []
(eventbox
:onhover "${EWW_CMD} update control_reveal=true"
:onhoverlost "${EWW_CMD} update control_reveal=false"
(box
:orientation "h"
:tooltip "${volume_percent}%"
:max 100
:min 0
:onchange "amixer -D pulse sset Master {}%" )))))
:space-evenly "false"
:vexpand "false"
:hexpand "false"
(literal
:content appname)
(revealer
:transition "slideright"
:reveal control_reveal
:duration "350ms"
(box
:vexpand "false"
:hexpand "false"
:orientation "h"
:space-evenly "false"
(button
:class "app-button"
:onclick "hyprctl dispatch togglefloating 1" "")
(button
:class "app-button"
:onclick "hyprctl dispatch fullscreen 1" "")
(button
:class "app-button"
:onclick "hyprctl dispatch killactive 1" ""))))))
(defwidget bright []
(eventbox :onhover "${eww} update br_reveal=true" :onhoverlost "${eww} update br_reveal=false"
(box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3"
(label :text "" :class "bright_icon" :tooltip "brightness")
(revealer :transition "slideleft"
(eventbox
:onhover "${EWW_CMD} update br_reveal=true"
:onhoverlost "${EWW_CMD} update br_reveal=false"
(box
:class "module"
:space-evenly "false"
:orientation "h"
:spacing "3"
(revealer
:transition "slideright"
:reveal br_reveal
:duration "350ms"
(scale :class "brightbar"
@ -134,217 +94,423 @@
:tooltip "${brightness_percent}%"
:max 100
:min 0
:onchange "brightnessctl set {}%" )))))
:onchange "light -S {}" ))
(label
:text ""
:class "bright_icon"
:tooltip "brightness"))))
;; Music
(defwidget music []
(eventbox :onhover "${eww} update music_reveal=true"
:onhoverlost "${eww} update music_reveal=false"
(box :class "module-2" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
(box :class "song_cover_art" :vexpand "false" :hexpand "false" :style "background-image: url('${cover_art}');")
(button :class "song" :wrap "true" :onclick "~/.config/eww/bar/scripts/pop music" song)
(revealer :transition "slideright"
:reveal music_reveal
(defwidget volume []
(eventbox
:onhover "${EWW_CMD} update vol_reveal=true"
:onhoverlost "${EWW_CMD} update vol_reveal=false"
(box
:class "module-2"
:space-evenly "false"
:orientation "h"
:spacing "3"
(revealer
:transition "slideright"
:reveal vol_reveal
:duration "350ms"
(box :vexpand "false" :hexpand "false" :oreintation "h"
(button :class "song_btn_prev" :onclick "~/.config/eww/bar/scripts/music_info --prev" "")
(button :class "song_btn_play" :onclick "~/.config/eww/bar/scripts/music_info --toggle" song_status)
(button :class "song_btn_next" :onclick "~/.config/eww/bar/scripts/music_info --next" ""))))))
(scale
:class "volbar"
:value volume_percent
:orientation "h"
:tooltip "${volume_percent}%"
:max 100
:min 0
:onchange "amixer -D pulse sset Master {}%" ))
(button
:onclick "scripts/pop audio_ctl"
:class "volume_icon"
"墳"))))
(defwidget wifi []
(eventbox
:onhover "${EWW_CMD} update wifi_rev=true"
:onhoverlost "${EWW_CMD} update wifi_rev=false"
(box
:vexpand "false"
:hexpand "false"
:space-evenly "false"
(revealer
:transition "slideright"
:reveal wifi_rev
:duration "350ms"
(label
:class "module_essid"
:text ESSID_WLAN
))
(button
:class "module-wif"
:onclick "networkmanager_dmenu"
WLAN_ICON))))
(defwidget bat []
(box
:class "bat_module"
:vexpand "false"
:hexpand "false"
(circular-progress
:value {EWW_BATTERY["BAT0"].capacity}
:class "batbar"
:thickness 4
(button
:onclick "scripts/pop system"
:class "iconbat"
:tooltip "battery on ${EWW_BATTERY["BAT0"].capacity}%"
" "))))
(defwidget mem []
(box
:class "mem_module"
:vexpand "false"
:hexpand "false"
(circular-progress
:value {EWW_RAM.used_mem_perc}
:class "membar"
:thickness 4
(button
:onclick "scripts/pop system"
:class "iconmem"
:tooltip "using ${EWW_RAM.used_mem_perc}% ram"
" "))))
(defwidget clock_module []
(eventbox
:onhover "${EWW_CMD} update time_rev=true"
:onhoverlost "${EWW_CMD} update time_rev=false"
(box
:class "module"
:space-evenly "false"
:orientation "h"
:spacing "0"
(label
:text clock_time
:class "clock_time_class" )
(revealer :transition "slideleft"
:reveal time_rev
:duration "350ms"
(button
:class "clock_date_class"
:onclick "scripts/pop calendar" clock_date)))))
(defwidget notif_button []
(box
:class "notif_button"
:space-evenly "false"
:orientation "h"
(button
:onclick "if ${EWW_CMD} state | grep 'rightside: false' ; then ${EWW_CMD} update rightside=true ; else ${EWW_CMD} update rightside=false ; fi"
(label
:text ""))))
(defwidget sep []
(box
:class "module-2"
:vexpand "false"
:hexpand "false"
(label
:class "separ"
:text "|")))
(defwidget gap []
(box
:orientation "h"
:hexpand "false"
:visible "true"
:width "150"))
;;define widget groups
(defwidget left []
(box :orientation "h"
:space-evenly false
:halign "end"
:class "left_modules"
(bright)
(volume)
(wifi)
(sep)
(bat)
(mem)
(sep)
(clock_module)))
(defwidget right []
(box :orientation "h"
(box
:orientation "h"
:space-evenly false
:halign "start"
:class "right_modules"
(workspaces)))
:class "left_modules"
(launcher)
(sep)
(workspaces)))
(defwidget center []
(box :orientation "h"
(box
:orientation "h"
:space-evenly false
:halign "center"
:class "center_modules"
(music)))
(defwidget bar_1 []
(box :class "bar_class"
(appnames)))
(defwidget right []
(box
:orientation "h"
:space-evenly false
:halign "end"
:class "right_modules"
(bright)
(volume)
(wifi)
(sep)
(bat)
(mem)
(sep)
(clock_module)
(notif_button)
))
(defwidget bar_layout []
(centerbox
:class "bar_class"
:orientation "h"
(right)
(center)
(left)
(center)
(right)
))
(defwindow bar
(defwindow bar0
:monitor 0
:geometry (geometry :x "0%"
:y "9px"
:width "98%"
:height "30px"
:exclusive false
:geometry (geometry
:x "15px"
:y "0px"
:width "100%"
:height "50px"
:anchor "top center")
:stacking "bottom"
:exclusize true
(bar_1))
(defwidget system []
(box :class "sys_win" :orientation "v" :space-evenly "false" :hexpand "false" :vexpand "false" :spacing 0
(box :class "sys_bat_box" :orientation "h" :space-evenly "false"
(circular-progress :value battery
:class "sys_bat"
:thickness 9
(label :text ""
:class "sys_icon_bat"
:limit-width 2
:show_truncated false
:wrap false))
(box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
(label :text "battery"
:halign "start"
:class "sys_text_bat"
:limit-width 9
:show_truncated false
:wrap false)
(label :text "${battery}%"
:halign "start"
:class "sys_text_bat_sub"
:limit-width 22
:show_truncated false
:wrap false)
(label :text "${battery_status}"
:halign "start"
:class "sys_text_bat_sub"
:limit-width 22
:show_truncated false
:wrap false)))
(label :text "" :class "sys_sep" :halign "center")
(box :class "sys_mem_box" :orientation "h" :space-evenly "false" :halign "start"
(circular-progress :value memory
:class "sys_mem"
:thickness 9
(label :text ""
:class "sys_icon_mem"
:limit-width 2
:show_truncated false
:wrap false
:angle 0.0))
(box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
(label :text "memory"
:halign "start"
:class "sys_text_mem"
:limit-width 9
:show_truncated false
:wrap false)
(label :text "${memory_used_mb} | ${memory_total_mb}mb "
:halign "start"
:class "sys_text_mem_sub"
:limit-width 22
:show_truncated false
:wrap false)
(label :text "${memory_free_mb}mb free"
:halign "start"
:class "sys_text_mem_sub"
:limit-width 22
:show_truncated false
:wrap false)))))
(defwidget cal []
(box :class "cal" :orientation "v"
(box :class "cal-in"
(calendar :class "cal"
:day calendar_day
:year calendar_year))))
(defwindow calendar
:geometry (geometry :x "-20px"
:y "7%"
:anchor "top right"
:width "270px"
:height "60px")
(cal))
:stacking "fg"
:windowtype "dock"
(bar_layout))
(defwindow bar1
:monitor 1
:exclusive false
:geometry (geometry
:x "15px"
:y "-50px"
:width "99%"
:height "30px"
:anchor "bottom center")
:stacking "fg"
:windowtype "dock"
(bar_layout))
(defwindow bar2
:monitor 2
:exclusive false
:geometry (geometry
:x "15px"
:y "0px"
:width "100%"
:height "50px"
:anchor "top center")
:stacking "fg"
:windowtype "dock"
(bar_layout))
(defwidget audio []
(box :class "audio-box" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false"
(box :halign "v" :space-evenly "false" :hexpand "false" :vexpand "false"
(box :class "speaker_icon" :orientation "v")
(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
(label :class "speaker_text" :text "speaker" :valign "center" :halign "left" )
(box :class "speaker_bar" :halign "center" :vexpand "false" :hexpand "false"
(scale :value volume_percent
(box
:class "audio-box"
:orientation "v"
:space-evenly "false"
:vexpand "false"
:hexpand "false"
(box
:halign "v"
:space-evenly "false"
:hexpand "false"
:vexpand "false"
(box
:class "speaker_icon"
:orientation "v")
(box
:orientation "v"
:halign "center"
:vexpand "false"
:hexpand "false"
(label
:class "speaker_text"
:text "speaker"
:valign "center"
:halign "left" )
(box
:class "speaker_bar"
:halign "center"
:vexpand "false"
:hexpand "false"
(scale
:value volume_percent
:orientation "h"
:onchange "amixer -D pulse sset Master {}%"
:tooltip "volume on ${volume_percent}%"
:max 100
:min 0))))
(label :text "" :class "audio_sep" :halign "center")
(box :halign "v" :space-evenly "false" :hexpand "false" :vexpand "false"
(box :class "mic_icon" :orientation "v")
(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
(label :class "mic_text" :text "mic" :valign "center" :halign "left" )
(box :class "mic_bar" :halign "center" :vexpand "false" :hexpand "false"
(scale :value mic_percent
(label
:text "_____________________________________"
:class "audio_sep"
:halign "center")
(box
:halign "v"
:space-evenly "false"
:hexpand "false"
:vexpand "false"
(box
:class "mic_icon"
:orientation "v")
(box
:orientation "v"
:halign "center"
:vexpand "false"
:hexpand "false"
(label
:class "mic_text"
:text "mic"
:valign "center"
:halign "left" )
(box
:class "mic_bar"
:halign "center"
:vexpand "false"
:hexpand "false"
(scale
:value mic_percent
:orientation "h"
:tooltip "mic on ${mic_percent}%"
:onchange "amixer -D pulse sset Capture {}%"
:max 100
:min 0))))))
(defwindow audio_ctl
:geometry (geometry :x "-20px"
:stacking "fg"
:focusable "false"
:screen 1
:monitor 0
:geometry (geometry
:x "20"
:y "7%"
:anchor "top right"
:width "280px"
:height "60px")
(audio))
(audio))
;;Define System widget
(defwidget system []
(box
:class "sys_win"
:orientation "v"
:space-evenly "false"
:hexpand "false"
:vexpand "false"
:spacing 0
(box
:class "sys_bat_box"
:orientation "h"
:space-evenly "false"
(circular-progress
:value {EWW_BATTERY["BAT0"].capacity}
:class "sys_bat"
:thickness 9
(label :text ""
:class "sys_icon_bat"
:limit-width 2
:wrap false))
(box
:orientation "v"
:space-evenly "false"
:spacing 0
:hexpand "false"
:vexpand "false"
(label
:text "battery"
:halign "start"
:class "sys_text_bat"
:limit-width 9
:wrap false)
(label
:text "${EWW_BATTERY["BAT0"].capacity}%"
:halign "start"
:class "sys_text_bat_sub"
:limit-width 22
:wrap false)
(label :text "${EWW_BATTERY["BAT0"].status}"
:halign "start"
:class "sys_text_bat_sub"
:limit-width 22
:wrap false)))
(label
:text "____________________________________"
:class "sys_sep"
:halign "center")
(box
:class "sys_mem_box"
:orientation "h"
:space-evenly "false"
:halign "start"
(circular-progress
:value {EWW_RAM.used_mem_perc}
:class "sys_mem"
:thickness 9
(label
:text ""
:class "sys_icon_mem"
:limit-width 2
:wrap false
:angle 0.0))
(box
:orientation "v"
:space-evenly "false"
:spacing 0
:hexpand "false"
:vexpand "false"
(label
:text "memory"
:halign "start"
:class "sys_text_mem"
:limit-width 9
:wrap false)
(label
:text "${round((EWW_RAM.available_mem / 1024), 0)} | ${round((EWW_RAM.total_mem / 1024), 0)}mb "
:halign "start"
:class "sys_text_mem_sub"
:limit-width 22
:wrap false)
(label :text "${round((EWW_RAM.used_mem / 1024), 0)}mb free"
:halign "start"
:class "sys_text_mem_sub"
:limit-width 22
:wrap false)
))))
(defwindow system
:geometry (geometry :x "-20px"
:stacking "fg"
:focusable "false"
:screen 1
:monitor 0
:geometry
(geometry
:x "20"
:y "7%"
:anchor "top right"
:width "290px"
:height "120px")
(system))
(system))
;; Music
(defwidget music_pop []
(box :class "music_pop" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
(box :class "music_cover_art" :vexpand "false" :hexpand "false" :style "background-image: url('${cover_art}');")
(box :orientation "v" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false"
(label :halign "center" :class "music" :wrap "true" :limit-width 13 :text song)
(label :halign "center" :class "music_artist" :wrap "true" :limit-width 15 :text song_artist)
(box :orientation "h" :spacing 15 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false"
(button :class "music_btn_prev" :onclick "~/.config/eww/bar/scripts/music_info --prev" "")
(button :class "music_btn_play" :onclick "~/.config/eww/bar/scripts/music_info --toggle" song_status)
(button :class "music_btn_next" :onclick "~/.config/eww/bar/scripts/music_info --next" ""))
(box :class "music_bar" :halign "center" :vexpand "false" :hexpand "false" :space-evenly "false"
(scale :onscroll "mpc -q seek {}" :min 0 :active "true" :max 100 :value current_status)))))
;; music
(defwindow music_win :stacking "fg" :focusable "false" :screen 1
:geometry (geometry :x "0" :y "7%" :width 428 :height 104 :anchor "top center")
(music_pop))
;;Calendar Widget
(defwidget cal []
(box
:class "cal"
:orientation "v"
(box
:class "cal-in"
(calendar
:day calendar_day
:year calendar_year))))
(defwindow calendar
:stacking "fg"
:focusable "false"
:screen 1
:monitor 0
:geometry (geometry
:x "20"
:y "7%"
:anchor "top right"
:width "270px"
:height "60px")
(cal))

View file

@ -21,6 +21,28 @@
"type": "github"
}
},
"eww": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1669643151,
"narHash": "sha256-39/l57QusriyNr426kXNqtub0ciZna+t20VKPYUAgsM=",
"owner": "elkowar",
"repo": "eww",
"rev": "ec4c2d1a4f12e9c3664e9f53ad99007b4a10a16a",
"type": "github"
},
"original": {
"owner": "elkowar",
"repo": "eww",
"type": "github"
}
},
"extra-container": {
"inputs": {
"flake-utils": [
@ -46,6 +68,22 @@
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": {
"locked": {
"lastModified": 1667395993,
@ -62,6 +100,21 @@
}
},
"flake-utils_2": {
"locked": {
"lastModified": 1656928814,
"narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
@ -76,7 +129,7 @@
"type": "github"
}
},
"flake-utils_3": {
"flake-utils_4": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
@ -170,7 +223,7 @@
},
"libre-presenter": {
"inputs": {
"flake-utils": "flake-utils_2",
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs"
},
"locked": {
@ -190,7 +243,7 @@
"nix-bitcoin": {
"inputs": {
"extra-container": "extra-container",
"flake-utils": "flake-utils_3",
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable"
},
@ -292,6 +345,7 @@
"root": {
"inputs": {
"emacs": "emacs",
"eww": "eww",
"home-manager": "home-manager",
"hyprland": "hyprland",
"libre-presenter": "libre-presenter",
@ -300,6 +354,28 @@
"nixpkgs-stable": "nixpkgs-stable"
}
},
"rust-overlay": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"eww",
"nixpkgs"
]
},
"locked": {
"lastModified": 1661655464,
"narHash": "sha256-by9Hb0mNVdiCR7TBvUHIgDb0QIv3znp8VMGh7Bl35VQ=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "0c4c1432353e12b325d1472bea99e364871d2cb3",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"utils": {
"locked": {
"lastModified": 1667395993,

View file

@ -12,6 +12,10 @@
url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs";
};
eww = {
url = "github:elkowar/eww";
inputs.nixpkgs.follows = "nixpkgs";
};
emacs = {
url = "github:nix-community/emacs-overlay";
inputs.nixpkgs.follows = "nixpkgs";

View file

@ -1,9 +1,12 @@
monitor=eDP-1,2256x1504@60,0x0,1.5
workspace=eDP-1,1
monitor=DVI-D-1,preferred,1600x0,1
monitor=DVI-D-1,preferred,0x0,1
monitor=HDMI-A-1,preferred,0x0,1
workspace=DVI-D-1,1
monitor=DP-3,preferred,1080x0,1.5
workspace=DVI-D-1,2
workspace=DP-3,1
workspace=HDMI-A-1,2
monitor=DVI-D-1,transform,1
input {
# kb_layout=
@ -93,11 +96,12 @@ misc:disable_autoreload = true
#windowrule=pseudo,abc
windowrule=opaque,firefox
windowrule=float,dolphin
windowrule=float,mpv
windowrule=size 90% 76%,mpv
windowrule=center,mpv
windowrule=float,pulsemixer
windowrule=workspace special,mpv
windowrule=workspace 1,firefox
windowrule=workspace 2,emacs
# example binds
bind=SUPER,RETURN,exec,alacritty
@ -111,7 +115,7 @@ bind=SUPER,E,exec,/home/chris/bin/emacslof
bind=SUPER,B,exec,/home/chris/bin/fflof
bind=SUPER,A,exec,alacritty --class pulsemixer -e pulsemixer
bind=SUPER,P,pseudo,
bind=SUPER,P,exec,/home/chris/bin/rbw.sh
bind=SUPER,M,fullscreen,1
bind=SUPER,F,fullscreen,0
@ -151,9 +155,10 @@ bind=SUPERSHIFT,8,movetoworkspace,8
bind=SUPERSHIFT,9,movetoworkspace,9
bind=SUPERSHIFT,0,movetoworkspace,10
bind=SUPER,O,movetoworkspace,next
bind=SUPER,o,movewindow,right
bind=SUPER,y,togglespecialworkspace
bind=SUPER,i,pin
bind=SUPER,i,movewindow,left
bind=SUPERSHIFT,p,pin
bind=SUPER,n,movetoworkspace,special
binde=, XF86AudioRaiseVolume, exec, /home/chris/bin/volup
@ -166,6 +171,9 @@ binde=, XF86MonBrightnessDown, exec, brightnessctl s 10%-
bindm=SUPER,mouse:272,movewindow
bindm=SUPER,mouse:273,resizewindow
# Blur waybar
blurls=waybar
exec-once=/home/chris/bin/startup.sh
exec-once=hyprpaper
exec-once=dunst

View file

@ -1,4 +1,5 @@
preload = ~/Pictures/wallpapers/nixorange.jpeg
wallpaper = DVI-D-1,~/Pictures/wallpapers/nixorange.jpeg
wallpaper = HDMI-A-1,~/Pictures/wallpapers/nixorange.jpeg
wallpaper = DP-3,~/Pictures/wallpapers/nixorange.jpeg
wallpaper = eDP-1,~/Pictures/wallpapers/nixorange.jpeg

View file

@ -1,6 +1,6 @@
#!/bin/sh
waybar &
eww open bar1 &
rbw-agent &
systemctl --user restart jellyfin-mpv-shim.service &
systemctl --user restart nextcloud-client.service &

View file

@ -119,7 +119,7 @@
enable = true;
settings = rec {
initial_session = {
command = "startplasma-wayland";
command = "/home/chris/bin/hyprland";
user = "chris";
};
default_session = initial_session;
@ -296,7 +296,7 @@
rofi-wayland
wofi
waybar
eww
eww-wayland
wlrctl
hyprpaper
swaylock-fancy

View file

@ -112,7 +112,7 @@
enable = true;
settings = rec {
initial_session = {
command = "startplasma-wayland";
command = "/home/chris/bin/hyprland";
user = "chris";
};
default_session = initial_session;
@ -315,7 +315,7 @@
rofi-wayland
wofi
waybar
eww
eww-wayland
wlrctl
hyprpaper
swaylock-fancy

View file

@ -4,7 +4,7 @@
"height": 30, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
// Choose the order of the modules "custom/wintitle",
"modules-left": ["wlr/workspaces", "hyprland/window"],
"modules-left": ["workspaces", "hyprland/window"],
"modules-center": ["clock"],
"modules-right": ["pulseaudio", "backlight", "network", "memory", "cpu", "battery", "battery#bat2", "tray"],
"margin-top": -5,
@ -33,6 +33,9 @@
"hyprland/window": {
"format": " {}"
},
"workspaces": {
"format": " {name} "
},
"sway/mode": {
"format": "<span style=\"italic\"> {}</span>"
},