switch to hyprland, kitty, remove old KDE apps, add eww
Change-Id: Idbac14bf4ee5fd885a2417859847d719b57fd8e0
Reviewed-on: https://git.clicks.codes/c/Coded/nixConfig/+/370
Reviewed-by: Samuel Shuert <coded@clicks.codes>
Tested-by: Samuel Shuert <coded@clicks.codes>
diff --git a/TODO.md b/TODO.md
deleted file mode 100644
index cbddaf3..0000000
--- a/TODO.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# [home-manager:](https://mipmip.github.io/home-manager-option-search)
-- programs.eww
-- programs.nnn
diff --git a/extensions/eww/eww.scss b/extensions/eww/eww.scss
new file mode 100644
index 0000000..3c47527
--- /dev/null
+++ b/extensions/eww/eww.scss
@@ -0,0 +1,447 @@
+/** EWW.SCSS
+Created by saimoom **/
+*{
+ all: unset;
+ font-family: feather;
+ font-family: DaddyTimeMono NF;
+}
+
+/** General **/
+.bar_class {
+ background-color: #0f0f17;
+ border-radius: 16px;
+}
+.module {
+ margin: 0px 0px 0px 0px;
+ border-radius: 10px 16px 0px 10px;
+}
+
+/** tooltip!! **/
+tooltip.background {
+ background-color: #0f0f17;
+ font-size: 18;
+ border-radius: 10px;
+ color: #bfc9db;
+}
+
+tooltip label {
+ margin: 6px;
+}
+
+
+/** Widgets **/
+
+.clock_time_sep {
+ font-size: 16;
+ color: #bfc9db;
+ margin: 0px 4px 1px 4px;
+}
+.clock_time_class, .clock_minute_class {
+ font-size: 23;
+}
+.clock_date_class {
+ font-size: 18;
+ margin: 0px 20px 0px -1px;
+ color: #d7beda;
+}
+.clock_minute_class {
+ margin: 0px 20px 0px 3px;
+ color: #bfc9db;
+}
+
+.clock_time_class {
+ color: #bfc9db;
+ font-weight: bold;
+ margin: 0px 5px 0px 0px;
+}
+
+
+.membar {
+ color: #e0b089;
+ background-color: #38384d;
+ border-radius: 10px;
+}
+.batbar {
+ color: #afbea2;
+ background-color: #38384d;
+ border-radius: 10px;
+}
+.brightbar trough highlight {
+ background-image: linear-gradient(to right, #e4c9af 30%, #f2cdcd 50%, #e0b089 100% *50);
+ border-radius: 10px;
+}
+.volbar trough highlight {
+ background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
+ border-radius: 10px;
+}
+.volume_icon {
+ font-size: 22;
+ color: #a1bdce;
+ margin: 0px 10px 0px 10px;
+}
+
+
+.module_essid {
+ font-size: 18;
+ color: #a1bdce;
+ margin: 0px 10px 0px 0px;
+}
+.module-wif {
+ font-size: 22;
+ color: #a1bdce;
+ border-radius: 100%;
+ margin: 0px 10px 0px 5px;
+}
+
+.iconmem {
+ color: #e0b089;
+}
+.iconbat {
+ color: #afbea2;
+}
+.iconbat, .iconmem {
+ font-size: 15;
+ margin: 10px;
+}
+.bright_icon {
+ font-size: 22;
+ color: #e4c9af;
+ margin: 0px 10px 0px 10px;
+}
+
+
+.separ {
+ color: #3e424f;
+ font-weight: bold;
+ font-size: 22px;
+ margin: 0px 8px 0px 8px;
+ }
+
+.mem_module {
+ background-color: #0f0f17;
+ border-radius: 16px;
+ margin: 0px 10px 0px 3px;
+ }
+.bat_module {
+ background-color: #0f0f17;
+ 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;
+}
+
+.0 , .01, .02, .03, .04, .05, .06,
+.011, .022, .033, .044, .055, .066{
+ margin: 0px 10px 0px 0px;
+}
+
+/* Unoccupied */
+.0 {
+color: #3e424f;
+}
+
+/* Occupied */
+.01, .02, .03, .04, .05, .06 {
+ color: #bfc9db;
+}
+
+/* Focused */
+.011, .022, .033, .044, .055, .066 {
+ color: #a1bdce;
+}
+
+
+.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;
+ font-size: 18px;
+ font-weight: normal;
+
+.cal-in {
+ padding: 0px 10px 0px 10px;
+ color: #bfc9db;
+
+.cal {
+ &.highlight {
+ padding: 20px;
+ }
+
+ padding: 5px 5px 5px 5px;
+ margin-left: 10px;
+ }
+ }
+}
+
+calender {
+ color: #bfc9db;
+}
+calendar:selected {
+ color: #a1bdce;
+}
+
+calendar.header {
+color: #a1bdce;
+font-weight: bold;
+}
+
+calendar.button {
+color: #afbea2;
+}
+
+calendar.highlight {
+color: #a1bdce;
+font-weight: bold;
+}
+
+calendar:indeterminate {
+color: #bfc9db;
+}
+
+
+
+
+
+
+
+.sys_sep {
+ color: #38384d;
+ font-size: 18;
+ margin: 0px 10px 0px 10px;
+}
+.sys_text_bat_sub, .sys_text_mem_sub {
+ font-size: 16;
+ color: #bbc5d7;
+ margin: 5px 0px 0px 25px;
+}
+.sys_text_bat, .sys_text_mem {
+ font-size: 21;
+ font-weight: bold;
+ margin: 14px 0px 0px 25px;
+}
+.sys_icon_bat, .sys_icon_mem {
+ font-size: 30;
+ margin: 30px;
+}
+.sys_win {
+ background-color: #0f0f17;
+}
+.sys_bat {
+ color: #afbea2;
+ background-color: #38384d;
+ border-radius: 10px;
+}
+.sys_mem {
+ color: #e4c9af;
+ background-color: #38384d;
+ border-radius: 10px;
+}
+.sys_icon_bat, .sys_text_bat {
+ color: #afbea2;
+}
+.sys_icon_mem, .sys_text_mem {
+ color: #e4c9af;
+}
+.sys_bat_box {
+ border-radius: 16px;
+ margin: 15px 10px 10px 20px;
+ }
+.sys_mem_box {
+ border-radius: 16px;
+ margin: 10px 10px 15px 20px;
+ }
+
+
+
+
+
+
+
+.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;
+ font-size : 20px;
+ font-weight : bold;
+ margin : 20px 0px 0px -15px;
+}
+
+.music_artist {
+ color: #bbc5d7;
+ font-size : 16px;
+ font-weight : normal;
+ margin : 0px 0px 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;
+}
+
+.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;
+}
+
+.audio-box {
+ background-color: #0f0f17;
+ border-radius: 16px;
+}
+.speaker_icon {
+ background-size: cover;
+ background-image: url('images/speaker.png');
+ background-position: center;
+ min-height: 70px;
+ min-width: 75px;
+ margin: 10px 20px 5px 20px;
+ border-radius: 12px;
+}
+
+.speaker_text {
+ color: #a1bdce;
+ font-size : 26px;
+ font-weight : bold;
+ margin: 20px 0px 0px 0px;
+}
+
+.speaker_bar scale trough highlight {
+ all: unset;
+ background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
+ border-radius: 24px;
+}
+.speaker_bar scale trough {
+ all: unset;
+ background-color: #232232;
+ box-shadow: 0 6px 5px 2px #06060b;
+ border-radius: 24px;
+ min-height: 13px;
+ min-width: 120px;
+ margin : 0px 0px 5px 0px;
+}
+
+
+
+
+.mic_icon {
+ background-size: cover;
+ background-image: url('images/mic.png');
+ background-position: center;
+ min-height: 70px;
+ min-width: 75px;
+ margin: 5px 20px 20px 20px;
+ border-radius: 12px;
+}
+
+.mic_text {
+ color: #a1bdce;
+ font-size : 26px;
+ font-weight : bold;
+ margin: 0px 0px 0px 0px;
+}
+
+.mic_bar scale trough highlight {
+ all: unset;
+ background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
+ border-radius: 24px;
+}
+.mic_bar scale trough {
+ all: unset;
+ box-shadow: 0 6px 5px 2px #06060b;
+ background-color: #232232;
+ border-radius: 24px;
+ min-height: 13px;
+ min-width: 120px;
+ margin : 0px 0px 20px 0px;
+}
+
+.audio_sep {
+ color: #38384d;
+ font-size: 18;
+ margin : 0px 0px 0px 0px;
+}
+
diff --git a/extensions/eww/eww.yuck b/extensions/eww/eww.yuck
new file mode 100644
index 0000000..27eb4c4
--- /dev/null
+++ b/extensions/eww/eww.yuck
@@ -0,0 +1,350 @@
+;; 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")
+(defvar vol_reveal false)
+(defvar br_reveal false)
+(defvar music_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
+ :orientation "h"
+ )))))
+
+
+(defwidget workspaces []
+ (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
+ :orientation "h"
+ :tooltip "${volume_percent}%"
+ :max 100
+ :min 0
+ :onchange "amixer -D pulse sset Master {}%" )))))
+
+(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"
+ :reveal br_reveal
+ :duration "350ms"
+ (scale :class "brightbar"
+ :value brightness_percent
+ :orientation "h"
+ :tooltip "${brightness_percent}%"
+ :max 100
+ :min 0
+ :onchange "brightnessctl set {}%" )))))
+
+
+
+ ;; 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
+ :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" ""))))))
+
+
+
+(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"
+ :space-evenly false
+ :halign "start"
+ :class "right_modules"
+(workspaces)))
+
+
+(defwidget center []
+ (box :orientation "h"
+ :space-evenly false
+ :halign "center"
+ :class "center_modules"
+(music)))
+
+(defwidget bar_1 []
+ (box :class "bar_class"
+ :orientation "h"
+ (right)
+ (center)
+ (left)
+ ))
+
+(defwindow bar
+ :geometry (geometry :x "0%"
+ :y "9px"
+ :width "98%"
+ :height "30px"
+ :anchor "top center")
+ :stacking "fg"
+ :windowtype "dock"
+ (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))
+
+
+
+(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
+ :space-evenly "false"
+ :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
+ :space-evenly "false"
+ :orientation "h"
+ :tooltip "mic on ${mic_percent}%"
+ :onchange "amixer -D pulse sset Capture {}%"
+ :max 100
+ :min 0))))))
+
+(defwindow audio_ctl
+ :geometry (geometry :x "-20px"
+ :y "7%"
+ :anchor "top right"
+ :width "280px"
+ :height "60px")
+(audio))
+
+
+(defwindow system
+ :geometry (geometry :x "-20px"
+ :y "7%"
+ :anchor "top right"
+ :width "290px"
+ :height "120px")
+(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))
+
diff --git a/extensions/eww/images/mic.png b/extensions/eww/images/mic.png
new file mode 100644
index 0000000..d77f315
--- /dev/null
+++ b/extensions/eww/images/mic.png
Binary files differ
diff --git a/extensions/eww/images/music.png b/extensions/eww/images/music.png
new file mode 100644
index 0000000..11804f5
--- /dev/null
+++ b/extensions/eww/images/music.png
Binary files differ
diff --git a/extensions/eww/images/profile.png b/extensions/eww/images/profile.png
new file mode 100644
index 0000000..0190a36
--- /dev/null
+++ b/extensions/eww/images/profile.png
Binary files differ
diff --git a/extensions/eww/images/speaker.png b/extensions/eww/images/speaker.png
new file mode 100644
index 0000000..79e005b
--- /dev/null
+++ b/extensions/eww/images/speaker.png
Binary files differ
diff --git a/extensions/eww/launch_bar b/extensions/eww/launch_bar
new file mode 100755
index 0000000..51f2a1d
--- /dev/null
+++ b/extensions/eww/launch_bar
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+## Files and cmd
+FILE="$HOME/.cache/eww_launch.xyz"
+EWW="$HOME/.local/bin/eww/eww -c $HOME/.config/eww/bar"
+
+## Run eww daemon if not running already
+if [[ ! `pidof eww` ]]; then
+ ${EWW} daemon
+ sleep 1
+fi
+
+## Open widgets
+run_eww() {
+ ${EWW} open-many \
+ bar
+
+}
+
+## Launch or close widgets accordingly
+if [[ ! -f "$FILE" ]]; then
+ touch "$FILE"
+ run_eww && bspc config -m LVDS-1 top_padding 49
+else
+ ${EWW} close-all && killall eww
+ rm "$FILE"
+fi
diff --git a/extensions/eww/scripts/battery b/extensions/eww/scripts/battery
new file mode 100755
index 0000000..0540a1b
--- /dev/null
+++ b/extensions/eww/scripts/battery
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+battery() {
+ BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
+ cat /sys/class/power_supply/${BAT}/capacity
+}
+battery_stat() {
+ BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
+ cat /sys/class/power_supply/${BAT}/status
+}
+
+if [[ "$1" == "--bat" ]]; then
+ battery
+elif [[ "$1" == "--bat-st" ]]; then
+ battery_stat
+fi
+
diff --git a/extensions/eww/scripts/mem-ad b/extensions/eww/scripts/mem-ad
new file mode 100755
index 0000000..1e4cf89
--- /dev/null
+++ b/extensions/eww/scripts/mem-ad
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+
+total="$(free -m | grep Mem: | awk '{ print $2 }')"
+used="$(free -m | grep Mem: | awk '{ print $3 }')"
+
+free=$(expr $total - $used)
+
+if [ "$1" = "total" ]; then
+ echo $total
+elif [ "$1" = "used" ]; then
+ echo $used
+elif [ "$1" = "free" ]; then
+ echo $free
+fi
diff --git a/extensions/eww/scripts/memory b/extensions/eww/scripts/memory
new file mode 100755
index 0000000..217c834
--- /dev/null
+++ b/extensions/eww/scripts/memory
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
diff --git a/extensions/eww/scripts/music_info b/extensions/eww/scripts/music_info
new file mode 100755
index 0000000..ffafe87
--- /dev/null
+++ b/extensions/eww/scripts/music_info
@@ -0,0 +1,98 @@
+#!/bin/bash
+# scripts by adi1090x
+
+## Get data
+STATUS="$(mpc status)"
+COVER="/tmp/.music_cover.png"
+MUSIC_DIR="$HOME/Music"
+
+## Get status
+get_status() {
+ if [[ $STATUS == *"[playing]"* ]]; then
+ echo ""
+ else
+ echo "奈"
+ fi
+}
+
+## Get song
+get_song() {
+ song=`mpc -f %title% current`
+ if [[ -z "$song" ]]; then
+ echo "Offline"
+ else
+ echo "$song"
+ fi
+}
+
+## Get artist
+get_artist() {
+ artist=`mpc -f %artist% current`
+ if [[ -z "$artist" ]]; then
+ echo ""
+ else
+ echo "$artist"
+ fi
+}
+
+## Get time
+get_time() {
+ time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'`
+ if [[ -z "$time" ]]; then
+ echo "0"
+ else
+ echo "$time"
+ fi
+}
+get_ctime() {
+ ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'`
+ if [[ -z "$ctime" ]]; then
+ echo "0:00"
+ else
+ echo "$ctime"
+ fi
+}
+get_ttime() {
+ ttime=`mpc -f %time% current`
+ if [[ -z "$ttime" ]]; then
+ echo "0:00"
+ else
+ echo "$ttime"
+ fi
+}
+
+## Get cover
+get_cover() {
+ ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null
+ STATUS=$?
+
+ # Check if the file has a embbeded album art
+ if [ "$STATUS" -eq 0 ];then
+ echo "$COVER"
+ else
+ echo "images/music.png"
+ fi
+}
+
+## Execute accordingly
+if [[ "$1" == "--song" ]]; then
+ get_song
+elif [[ "$1" == "--artist" ]]; then
+ get_artist
+elif [[ "$1" == "--status" ]]; then
+ get_status
+elif [[ "$1" == "--time" ]]; then
+ get_time
+elif [[ "$1" == "--ctime" ]]; then
+ get_ctime
+elif [[ "$1" == "--ttime" ]]; then
+ get_ttime
+elif [[ "$1" == "--cover" ]]; then
+ get_cover
+elif [[ "$1" == "--toggle" ]]; then
+ mpc -q toggle
+elif [[ "$1" == "--next" ]]; then
+ { mpc -q next; get_cover; }
+elif [[ "$1" == "--prev" ]]; then
+ { mpc -q prev; get_cover; }
+fi
diff --git a/extensions/eww/scripts/pop b/extensions/eww/scripts/pop
new file mode 100755
index 0000000..aef82e8
--- /dev/null
+++ b/extensions/eww/scripts/pop
@@ -0,0 +1,92 @@
+#!/bin/bash
+
+calendar() {
+LOCK_FILE="$HOME/.cache/eww-calendar.lock"
+EWW_BIN="$HOME/.local/bin/eww/eww"
+
+run() {
+ ${EWW_BIN} -c $HOME/.config/eww/bar open calendar
+}
+
+# Open widgets
+if [[ ! -f "$LOCK_FILE" ]]; then
+ ${EWW_BIN} -c $HOME/.config/eww/bar close system music_win audio_ctl
+ touch "$LOCK_FILE"
+ run && echo "ok good!"
+else
+ ${EWW_BIN} -c $HOME/.config/eww/bar close calendar
+ rm "$LOCK_FILE" && echo "closed"
+fi
+}
+
+
+system() {
+LOCK_FILE_MEM="$HOME/.cache/eww-system.lock"
+EWW_BIN="$HOME/.local/bin/eww/eww"
+
+run() {
+ ${EWW_BIN} -c $HOME/.config/eww/bar open system
+}
+
+# Open widgets
+if [[ ! -f "$LOCK_FILE_MEM" ]]; then
+ ${EWW_BIN} -c $HOME/.config/eww/bar close calendar music_win audio_ctl
+ touch "$LOCK_FILE_MEM"
+ run && echo "ok good!"
+else
+ ${EWW_BIN} -c $HOME/.config/eww/bar close system
+ rm "$LOCK_FILE_MEM" && echo "closed"
+fi
+}
+
+
+music() {
+LOCK_FILE_SONG="$HOME/.cache/eww-song.lock"
+EWW_BIN="$HOME/.local/bin/eww/eww"
+
+run() {
+ ${EWW_BIN} -c $HOME/.config/eww/bar open music_win
+}
+
+# Open widgets
+if [[ ! -f "$LOCK_FILE_SONG" ]]; then
+ ${EWW_BIN} -c $HOME/.config/eww/bar close system calendar
+ touch "$LOCK_FILE_SONG"
+ run && echo "ok good!"
+else
+ ${EWW_BIN} -c $HOME/.config/eww/bar close music_win
+ rm "$LOCK_FILE_SONG" && echo "closed"
+fi
+}
+
+
+
+audio() {
+LOCK_FILE_AUDIO="$HOME/.cache/eww-audio.lock"
+EWW_BIN="$HOME/.local/bin/eww/eww"
+
+run() {
+ ${EWW_BIN} -c $HOME/.config/eww/bar open audio_ctl
+}
+
+# Open widgets
+if [[ ! -f "$LOCK_FILE_AUDIO" ]]; then
+ ${EWW_BIN} -c $HOME/.config/eww/bar close system calendar music
+ touch "$LOCK_FILE_AUDIO"
+ run && echo "ok good!"
+else
+ ${EWW_BIN} -c $HOME/.config/eww/bar close audio_ctl
+ rm "$LOCK_FILE_AUDIO" && echo "closed"
+fi
+}
+
+
+if [ "$1" = "calendar" ]; then
+calendar
+elif [ "$1" = "system" ]; then
+system
+elif [ "$1" = "music" ]; then
+music
+elif [ "$1" = "audio" ]; then
+audio
+fi
diff --git a/extensions/eww/scripts/wifi b/extensions/eww/scripts/wifi
new file mode 100755
index 0000000..5d7cc59
--- /dev/null
+++ b/extensions/eww/scripts/wifi
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+status=$(nmcli g | grep -oE "disconnected")
+essid=$(nmcli c | grep wlp2s0 | awk '{print ($1)}')
+
+if [ $status ] ; then
+ icon=""
+ text=""
+ col="#575268"
+
+else
+ icon=""
+ text="${essid}"
+ col="#a1bdce"
+fi
+
+
+
+if [[ "$1" == "--COL" ]]; then
+ echo $col
+elif [[ "$1" == "--ESSID" ]]; then
+ echo $text
+elif [[ "$1" == "--ICON" ]]; then
+ echo $icon
+fi
+
diff --git a/extensions/eww/scripts/workspace b/extensions/eww/scripts/workspace
new file mode 100755
index 0000000..f202ef1
--- /dev/null
+++ b/extensions/eww/scripts/workspace
@@ -0,0 +1,56 @@
+#!/bin/sh
+workspaces() {
+
+ws1="1"
+ws2="2"
+ws3="3"
+ws4="4"
+ws5="5"
+ws6="6"
+
+# Unoccupied
+un="0"
+
+# check if Occupied
+o1=$(bspc query -D -d .occupied --names | grep "$ws1" )
+o2=$(bspc query -D -d .occupied --names | grep "$ws2" )
+o3=$(bspc query -D -d .occupied --names | grep "$ws3" )
+o4=$(bspc query -D -d .occupied --names | grep "$ws4" )
+o5=$(bspc query -D -d .occupied --names | grep "$ws5" )
+o6=$(bspc query -D -d .occupied --names | grep "$ws6" )
+
+# check if Focused
+f1=$(bspc query -D -d focused --names | grep "$ws1" )
+f2=$(bspc query -D -d focused --names | grep "$ws2" )
+f3=$(bspc query -D -d focused --names | grep "$ws3" )
+f4=$(bspc query -D -d focused --names | grep "$ws4" )
+f5=$(bspc query -D -d focused --names | grep "$ws5" )
+f6=$(bspc query -D -d focused --names | grep "$ws6" )
+
+ic_1=""
+ic_2=""
+ic_3=""
+ic_4=""
+ic_5=""
+ic_6=""
+if [ $f1 ]; then
+ ic_1=""
+elif [ $f2 ]; then
+ ic_2=""
+elif [ $f3 ]; then
+ ic_3=""
+elif [ $f4 ]; then
+ ic_4=""
+elif [ $f5 ]; then
+ ic_5=""
+elif [ $f6 ]; then
+ ic_6=""
+fi
+
+echo "(box :class \"works\" :orientation \"h\" :spacing 5 :space-evenly \"false\" (button :onclick \"bspc desktop -f $ws1\" :class \"$un$o1$f1\" \"$ic_1\") (button :onclick \"bspc desktop -f $ws2\" :class \"$un$o2$f2\" \"$ic_2\") (button :onclick \"bspc desktop -f $ws3\" :class \"$un$o3$f3\" \"$ic_3\") (button :onclick \"bspc desktop -f $ws4\" :class \"$un$o4$f4\" \"$ic_4\") (button :onclick \"bspc desktop -f $ws5\" :class \"$un$o5$f5\" \"$ic_5\") (button :onclick \"bspc desktop -f $ws6\" :class \"$un$o6$f6\" \"$ic_6\"))"
+
+}
+workspaces
+bspc subscribe desktop node_transfer | while read -r _ ; do
+workspaces
+done
diff --git a/flake.lock b/flake.lock
index 41320e5..dd74618 100755
--- a/flake.lock
+++ b/flake.lock
@@ -16,6 +16,27 @@
"type": "github"
}
},
+ "anyrun": {
+ "inputs": {
+ "flake-parts": "flake-parts",
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1701453400,
+ "narHash": "sha256-hI9+KBShsSfvWX7bmRa/1VI20WGat3lDXmbceMZzMS4=",
+ "owner": "Kirottu",
+ "repo": "anyrun",
+ "rev": "e14da6c37337ffa3ee1bc66965d58ef64c1590e5",
+ "type": "github"
+ },
+ "original": {
+ "owner": "Kirottu",
+ "repo": "anyrun",
+ "type": "github"
+ }
+ },
"crane": {
"inputs": {
"nixpkgs": [
@@ -92,6 +113,27 @@
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
+ "anyrun",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1696343447,
+ "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "flake-parts_2": {
+ "inputs": {
+ "nixpkgs-lib": [
"lanzaboote",
"nixpkgs"
]
@@ -112,7 +154,7 @@
},
"flake-utils": {
"inputs": {
- "systems": "systems_2"
+ "systems": "systems_3"
},
"locked": {
"lastModified": 1694529238,
@@ -170,11 +212,80 @@
"type": "github"
}
},
+ "hyprland": {
+ "inputs": {
+ "hyprland-protocols": "hyprland-protocols",
+ "nixpkgs": "nixpkgs_2",
+ "systems": "systems_2",
+ "wlroots": "wlroots",
+ "xdph": "xdph"
+ },
+ "locked": {
+ "lastModified": 1707586793,
+ "narHash": "sha256-Vdf5QGzkZe6UUdVZ80YT78id7Yw5ww9Fku0rEyPAkCg=",
+ "owner": "hyprwm",
+ "repo": "Hyprland",
+ "rev": "e4bb5fa4af1a6c36aab1c28651b5403dc4952f93",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "Hyprland",
+ "type": "github"
+ }
+ },
+ "hyprland-protocols": {
+ "inputs": {
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1691753796,
+ "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
+ "owner": "hyprwm",
+ "repo": "hyprland-protocols",
+ "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprland-protocols",
+ "type": "github"
+ }
+ },
+ "hyprlang": {
+ "inputs": {
+ "nixpkgs": [
+ "hyprland",
+ "xdph",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1704287638,
+ "narHash": "sha256-TuRXJGwtK440AXQNl5eiqmQqY4LZ/9+z/R7xC0ie3iA=",
+ "owner": "hyprwm",
+ "repo": "hyprlang",
+ "rev": "6624f2bb66d4d27975766e81f77174adbe58ec97",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprlang",
+ "type": "github"
+ }
+ },
"lanzaboote": {
"inputs": {
"crane": "crane",
"flake-compat": "flake-compat_2",
- "flake-parts": "flake-parts",
+ "flake-parts": "flake-parts_2",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
@@ -258,6 +369,22 @@
},
"nixpkgs_2": {
"locked": {
+ "lastModified": 1706191920,
+ "narHash": "sha256-eLihrZAPZX0R6RyM5fYAWeKVNuQPYjAkCUBr+JNvtdE=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "ae5c332cbb5827f6b1f02572496b141021de335f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_3": {
+ "locked": {
"lastModified": 1701389149,
"narHash": "sha256-rU1suTIEd5DGCaAXKW6yHoCfR1mnYjOXQFOaH7M23js=",
"owner": "nixos",
@@ -306,11 +433,13 @@
"root": {
"inputs": {
"alacritty-themes": "alacritty-themes",
+ "anyrun": "anyrun",
"deploy-rs": "deploy-rs",
"home-manager": "home-manager",
+ "hyprland": "hyprland",
"lanzaboote": "lanzaboote",
"nix-vscode-extensions": "nix-vscode-extensions",
- "nixpkgs": "nixpkgs_2"
+ "nixpkgs": "nixpkgs_3"
}
},
"rust-overlay": {
@@ -355,6 +484,21 @@
},
"systems_2": {
"locked": {
+ "lastModified": 1689347949,
+ "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
+ "owner": "nix-systems",
+ "repo": "default-linux",
+ "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default-linux",
+ "type": "github"
+ }
+ },
+ "systems_3": {
+ "locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
@@ -385,6 +529,55 @@
"repo": "flake-utils",
"type": "github"
}
+ },
+ "wlroots": {
+ "flake": false,
+ "locked": {
+ "host": "gitlab.freedesktop.org",
+ "lastModified": 1706359063,
+ "narHash": "sha256-5HUTG0p+nCJv3cn73AmFHRZdfRV5AD5N43g8xAePSKM=",
+ "owner": "wlroots",
+ "repo": "wlroots",
+ "rev": "00b869c1a96f300a8f25da95d624524895e0ddf2",
+ "type": "gitlab"
+ },
+ "original": {
+ "host": "gitlab.freedesktop.org",
+ "owner": "wlroots",
+ "repo": "wlroots",
+ "rev": "00b869c1a96f300a8f25da95d624524895e0ddf2",
+ "type": "gitlab"
+ }
+ },
+ "xdph": {
+ "inputs": {
+ "hyprland-protocols": [
+ "hyprland",
+ "hyprland-protocols"
+ ],
+ "hyprlang": "hyprlang",
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1706145785,
+ "narHash": "sha256-j9MP4fv2U/vdRKAXXc2gyMTmYwVnHP6kHx1/y6jprrU=",
+ "owner": "hyprwm",
+ "repo": "xdg-desktop-portal-hyprland",
+ "rev": "5a592647587cd20b9692a347df6939b6d371b3bb",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "xdg-desktop-portal-hyprland",
+ "type": "github"
+ }
}
},
"root": "root",
diff --git a/flake.nix b/flake.nix
index 99c098e..2ba0c23 100755
--- a/flake.nix
+++ b/flake.nix
@@ -19,6 +19,13 @@
lanzaboote.url = "github:nix-community/lanzaboote";
lanzaboote.inputs.nixpkgs.follows = "nixpkgs";
+
+ hyprland.url = "github:hyprwm/Hyprland";
+
+ anyrun = {
+ url = "github:Kirottu/anyrun";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
};
outputs = { self, nixpkgs, home-manager, deploy-rs, ... }@inputs: let
@@ -28,8 +35,10 @@
(map import)
]);
in {
- nixosConfigurations.codedPC = nixpkgs.lib.nixosSystem {
+ nixosConfigurations.codedPC = let
system = "x86_64-linux";
+ in nixpkgs.lib.nixosSystem {
+ inherit system;
modules = [
home-manager.nixosModules.home-manager
inputs.lanzaboote.nixosModules.lanzaboote
@@ -38,11 +47,13 @@
system = { inherit stateVersion; };
}
] ++ modulesFor "common" ++ modulesFor "codedPC";
- specialArgs = { inherit inputs; flakeRoot = ./.; };
+ specialArgs = { inherit inputs system; flakeRoot = ./.; };
};
- nixosConfigurations.codedPI = nixpkgs.lib.nixosSystem {
+ nixosConfigurations.codedPI = let
system = "amd64-linux";
+ in nixpkgs.lib.nixosSystem {
+ inherit system;
modules = [
home-manager.nixosModules.home-manager
inputs.lanzaboote.nixosModules.lanzaboote
@@ -51,7 +62,7 @@
system = { inherit stateVersion; };
}
] ++ modulesFor "common" ++ modulesFor "codedPI";
- specialArgs = { inherit inputs; flakeRoot = ./.; };
+ specialArgs = { inherit inputs system; flakeRoot = ./.; };
};
deploy.nodes.codedPI.profiles.system = {
diff --git a/modules/codedPC/anyrun.nix b/modules/codedPC/anyrun.nix
new file mode 100644
index 0000000..3ae2393
--- /dev/null
+++ b/modules/codedPC/anyrun.nix
@@ -0,0 +1,16 @@
+{ inputs, system, ...}: {
+ home-manager.users.coded.imports = [ inputs.anyrun.homeManagerModules.default ];
+ home-manager.users.coded.programs.anyrun = {
+ enable = true;
+ config = {
+ plugins = [
+ inputs.anyrun.packages.${system}.applications
+ inputs.anyrun.packages.${system}.rink
+ inputs.anyrun.packages.${system}.shell
+ inputs.anyrun.packages.${system}.translate
+ inputs.anyrun.packages.${system}.kidex
+ inputs.anyrun.packages.${system}.symbols
+ ];
+ };
+ };
+}
diff --git a/modules/codedPC/eww.nix b/modules/codedPC/eww.nix
new file mode 100644
index 0000000..edbdf3e
--- /dev/null
+++ b/modules/codedPC/eww.nix
@@ -0,0 +1,6 @@
+{ flakeRoot, ... }: {
+ home-manager.users.coded.programs.eww = {
+ enable = true;
+ configDir = "${flakeRoot}/extensions/eww";
+ };
+}
diff --git a/modules/codedPC/kde_plasma.nix b/modules/codedPC/kde_plasma.nix
deleted file mode 100644
index 39683b3..0000000
--- a/modules/codedPC/kde_plasma.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ pkgs, ... }: {
- environment.plasma5.excludePackages = [
- pkgs.libsForQt5.okular
- pkgs.libsForQt5.konsole
- ];
-
- environment.systemPackages = [
- pkgs.sweet-nova
- pkgs.pitch-black
- pkgs.adapta-kde-theme
- pkgs.ocs-url
- ];
-
-}
diff --git a/modules/codedPC/packages.nix b/modules/codedPC/packages.nix
index 5fdd854..d39fb0b 100644
--- a/modules/codedPC/packages.nix
+++ b/modules/codedPC/packages.nix
@@ -6,6 +6,5 @@
pkgs.email
pkgs.thunderbird
pkgs.ollama
- pkgs.kdocker
];
}
diff --git a/modules/codedPC/shell.nix b/modules/codedPC/shell.nix
index 997afe8..39dfd70 100644
--- a/modules/codedPC/shell.nix
+++ b/modules/codedPC/shell.nix
@@ -1,18 +1,12 @@
{ inputs, ... }: {
- home-manager.users.coded.programs.alacritty = {
+ home-manager.users.coded.programs.kitty = {
enable = true;
- settings = {
- window.dimensions = {
- lines = 40;
- columns = 150;
- };
- import = [
- "${inputs.alacritty-themes}/themes/Catppuccin-Mocha.yml"
- ];
- };
+ theme = "Catppuccin-Macchiato";
+ shellIntegration.enableZshIntegration = true;
};
home-manager.users.coded.programs.zsh.shellAliases = {
+ launch = "hyprctl dispatch exec $1";
print3d = "sudo /run/current-system/sw/bin/pronsole.py";
};
}
diff --git a/modules/codedPC/video.nix b/modules/codedPC/video.nix
index 00fdb9f..bc5cffb 100644
--- a/modules/codedPC/video.nix
+++ b/modules/codedPC/video.nix
@@ -1,18 +1,122 @@
-{
- services.xserver.enable = true;
- services.xserver.videoDrivers = [ "amdgpu" ];
+{ pkgs, inputs, ... }: {
- services.xserver.displayManager.sddm.enable = true;
- services.xserver.desktopManager.plasma5.enable = true;
+ programs.hyprland.enable = true;
- hardware.opengl.driSupport = true;
- # For 32 bit applications
- hardware.opengl.driSupport32Bit = true;
+ home-manager.users.coded = {
+ home.packages = [ pkgs.hyprpicker ];
- programs.dconf.enable = true;
+ wayland.windowManager.hyprland = {
+ enable = true;
- services.xserver = {
- layout = "us";
- xkbVariant = "";
+ xwayland.enable = true;
+ systemd.enable = true;
+
+ plugins = [
+
+ ];
+
+
+ settings = {
+ "$mainMod" = "SUPER";
+ "$terminal" = "kitty";
+ "$menu" = "anyrun";
+
+ general = {
+ gaps_in = 5;
+ gaps_out = 20;
+
+ border_size = 2;
+ "col.active_border" = "rgba(71AEF5EE) rgba(F2D478EE) 45deg";
+ "col.inactive_border" = "rgba(C4C4C4EE)";
+
+ layout = "dwindle";
+ };
+
+ decoration = {
+ rounding = 10;
+
+ drop_shadow = true;
+ shadow_range = 4;
+ shadow_render_power = 3;
+ "col.shadow" = "rgba(1a1a1aee)";
+ };
+
+ input = {
+ kb_layout = "us";
+ numlock_by_default = true;
+ };
+
+ monitor = [
+ "DP-1,1920x1080@165,0x0,1"
+ "DP-2,1920x1080@165,1920x0,1"
+ "HDMI-A-1,1920x1080@60,960x-1080,1"
+ ",preferred,auto,1"
+ ];
+
+ xwayland = {
+ force_zero_scaling = true;
+ };
+
+ master = {
+ new_is_master = true;
+ };
+
+ bind = [
+ "$mainMod, Q, killactive"
+ "$mainMod, SPACE, togglefloating"
+ "$mainMod, RETURN, exec, $terminal"
+ "$mainMod, down, movefocus, d"
+ "$mainMod, up, movefocus, u"
+ "$mainMod, right, movefocus, r"
+ "$mainMod, left, movefocus, l"
+
+ "ALT, SPACE, exec, $menu"
+ ] ++ (
+ builtins.concatLists (builtins.genList (
+ x: let
+ ws = let
+ c = (x + 1) / 10;
+ in
+ builtins.toString (x + 1 - (c * 10));
+ in [
+ "$mainMod, ${ws}, workspace, ${toString (x + 1)}"
+ "$mainMod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
+ ]
+ )
+ 10)
+ );
+
+ bindm = [
+ "$mainMod, mouse:272, movewindow"
+ "$mainMod, mouse:273, resizewindow"
+ ];
+ };
+ };
+ };
+
+ # services.xserver.enable = true;
+ # services.xserver.videoDrivers = [ "amdgpu" ];
+
+ # services.xserver.displayManager.sddm.enable = true;
+ # services.xserver.desktopManager.plasma5.enable = true;
+
+ # hardware.opengl.driSupport = true;
+ # # For 32 bit applications
+ # hardware.opengl.driSupport32Bit = true;
+
+ # programs.dconf.enable = true;
+
+ # services.xserver = {
+ # layout = "us";
+ # xkbVariant = "";
+ # };
+
+ hardware.opengl = {
+ enable = true;
+ driSupport = true;
+ driSupport32Bit = true;
+ extraPackages = [
+ pkgs.vaapiVdpau
+ ];
};
}
diff --git a/modules/codedPC/vscode.nix b/modules/codedPC/vscode.nix
index ecd4f35..0ae2c18 100644
--- a/modules/codedPC/vscode.nix
+++ b/modules/codedPC/vscode.nix
@@ -15,6 +15,7 @@
"javascript.updateImportsOnFileMove.enabled" = "always";
"terminal.integrated.enableMultiLinePasteWarning" = false;
"liveshare.languages.allowGuestCommandControl" = true;
+ "gerrit.auth.url" = "https://git.clicks.codes";
};
extensions =
[
@@ -23,11 +24,19 @@
pkgs.vscode-extensions.editorconfig.editorconfig
pkgs.vscode-extensions.zhuangtongfa.material-theme
pkgs.vscode-extensions.bbenoist.nix
- ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [{
- name = "helium-icon-theme";
- publisher = "helgardrichard";
- version = "1.0.0";
- sha256 = "sha256-uSApuTXQgvPiJpBL91d3mX35Sa2l2vLIAFpBo+cZ4h4=";
- }];
+ ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
+ {
+ name = "helium-icon-theme";
+ publisher = "helgardrichard";
+ version = "1.0.0";
+ sha256 = "sha256-uSApuTXQgvPiJpBL91d3mX35Sa2l2vLIAFpBo+cZ4h4=";
+ }
+ {
+ name = "vscode--gerrit";
+ publisher = "sanderronde";
+ version = "1.2.21";
+ sha256 = "sha256-M7ZEBhxDCZ4/YCK8ujkAjIpiO1otpNXh13yeQVQZ8SA=";
+ }
+ ];
};
}
diff --git a/modules/common/basicServices.nix b/modules/common/basicServices.nix
index 81eea42..acb18e3 100644
--- a/modules/common/basicServices.nix
+++ b/modules/common/basicServices.nix
@@ -1 +1 @@
-{ config, pkgs, ... }: { services.printing.enable = true; }
+{ services.printing.enable = true; }
diff --git a/modules/common/shell.nix b/modules/common/shell.nix
index 77b2ce9..e993f1c 100644
--- a/modules/common/shell.nix
+++ b/modules/common/shell.nix
@@ -3,9 +3,9 @@
users.users.coded.shell = pkgs.zsh;
home-manager.users.coded.home.packages = [
+ pkgs.htop
pkgs.bmon
pkgs.wget
- pkgs.guake
];
home-manager.users.coded.programs = {