diff --git a/arch.os b/arch.os index a496b89..d3578e1 100755 --- a/arch.os +++ b/arch.os @@ -5,8 +5,8 @@ yay -S neovim-git nvm wezterm ranger ripgrep zsh zsh-vi-mode curl exa sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # WM Deps -yay -S awesome-git i3 ttf-material-design-icons ttf-unifont polybar -yay -S picom-ftlabs-git +yay -S awesome-git i3 betterlockscreen polybar-git eww xss-lock ttf-material-design-icons ttf-unifont polybar +yay -S picom-ftlabs-git dunst yay -S i3exit arc-icon-theme ttf-twemoji xorg-xbacklight xidlehook sysstat i3blocks mpris-ctl flameshot perl rofi mkdir -p ~/.local/share/fonts diff --git a/common/.config/dunst/dunstrc b/common/.config/dunst/dunstrc index c2d242e..024a052 100644 --- a/common/.config/dunst/dunstrc +++ b/common/.config/dunst/dunstrc @@ -1,302 +1,50 @@ [global] - frame_width = 1 - frame_color = "#788388" - - font = Noto Sans 10 - - # Allow a small subset of html markup: - # bold - # italic - # strikethrough - # underline - # - # For a complete reference see - # . - # If markup is not allowed, those tags will be stripped out of the - # message. - markup = yes - - # The format of the message. Possible variables are: - # %a appname - # %s summary - # %b body - # %i iconname (including its path) - # %I iconname (without its path) - # %p progress value if set ([ 0%] to [100%]) or nothing - # Markup is allowed - format = "%s %p\n%b" - - # Sort messages by urgency. + font = DejaVu Sans Mono 10 + allow_markup = yes + format = "%s\n%b" sort = yes - - # Show how many messages are currently hidden (because of geometry). indicate_hidden = yes - - # Alignment of message text. - # Possible values are "left", "center" and "right". - alignment = left - - # The frequency with wich text that is longer than the notification - # window allows bounces back and forth. - # This option conflicts with "word_wrap". - # Set to 0 to disable. - bounce_freq = 5 - - - # Show age of message if message is older than show_age_threshold - # seconds. - # Set to -1 to disable. + alignment = center + bounce_freq = 0 show_age_threshold = 60 - - # Split notifications into multiple lines if they don't fit into - # geometry. - word_wrap = no - - # Ignore newlines '\n' in notifications. + word_wrap = yes ignore_newline = no - - - # The geometry of the window: - # [{width}]x{height}[+/-{x}+/-{y}] - # The geometry of the message window. - # The height is measured in number of notifications everything else - # in pixels. If the width is omitted but the height is given - # ("-geometry x2"), the message window expands over the whole screen - # (dmenu-like). If width is 0, the window expands to the longest - # message displayed. A positive x is measured from the left, a - # negative from the right side of the screen. Y is measured from - # the top and down respectevly. - # The width can be negative. In this case the actual width is the - # screen width minus the width defined in within the geometry option. - geometry = "0x4-25+25" - - # Shrink window if it's smaller than the width. Will be ignored if - # width is 0. - shrink = yes - - # The transparency of the window. Range: [0; 100]. - # This option will only work if a compositing windowmanager is - # present (e.g. xcompmgr, compiz, etc.). - transparency = 15 - - # Don't remove messages, if the user is idle (no mouse or keyboard input) - # for longer than idle_threshold seconds. - # Set to 0 to disable. - # default 120 - idle_threshold = 120 - - # Which monitor should the notifications be displayed on. + geometry = "200x5-6+30" + transparency = 0 + idle_threshold = 120 monitor = 0 - - # Display notification on focused monitor. Possible modes are: - # mouse: follow mouse pointer - # keyboard: follow window with keyboard focus - # none: don't follow anything - # - # "keyboard" needs a windowmanager that exports the - # _NET_ACTIVE_WINDOW property. - # This should be the case for almost all modern windowmanagers. - # - # If this option is set to mouse or keyboard, the monitor option - # will be ignored. follow = mouse - - # Should a notification popped up from history be sticky or timeout - # as if it would normally do. sticky_history = yes - - # Maximum amount of notifications kept in history - history_length = 20 - - # Display indicators for URLs (U) and actions (A). - show_indicators = yes - - # The height of a single line. If the height is smaller than the - # font height, it will get raised to the font height. - # This adds empty space above and under the text. line_height = 0 - - # Draw a line of "separator_height" pixel height between two - # notifications. - # Set to 0 to disable. - separator_height = 1 - - # Padding between text and separator. - # padding = 8 + separator_height = 2 padding = 8 - - # Horizontal padding. - horizontal_padding = 10 - - # Define a color for the separator. - # possible values are: - # * auto: dunst tries to find a color fitting to the background; - # * foreground: use the same color as the foreground; - # * frame: use the same color as the frame; - # * anything else will be interpreted as a X color. - separator_color = #263238 - - # Print a notification on startup. - # This is mainly for error detection, since dbus (re-)starts dunst - # automatically after a crash. + horizontal_padding = 8 + separator_color = "#58585822" startup_notification = false - - # dmenu path. - dmenu = /usr/bin/dmenu -p dunst: - - # Browser for opening urls in context menu. - browser = palemoon - - # Align icons left/right/off - icon_position = left - - # Paths to default icons. - icon_path = /usr/share/icons/Adwaita/16x16/status/:/usr/share/icons/Adwaita/16x16/devices/ - - # Limit icons size. - max_icon_size=128 + corner_radius = 6 + # https://github.com/knopwob/dunst/issues/26#issuecomment-36159395 + #icon_position = left + #icon_folders = /usr/share/icons/elementary/actions/16/ + frame_width = 1 + frame_color = "#abb2bf66" [shortcuts] - - # Shortcuts are specified as [modifier+][modifier+]...key - # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", - # "mod3" and "mod4" (windows-key). - # Xev might be helpful to find names for keys. - - # Close notification. - close = mod1+space - - # Close all notifications. - # close_all = ctrl+shift+space - close_all = ctrl+mod1+space - - # Redisplay last message(s). - # On the US keyboard layout "grave" is normally above TAB and left - # of "1". - history = ctrl+mod4+h - - # Context menu. - context = ctrl+mod1+c + close = ctrl+space + close_all = ctrl+shift+space + history = ctrl+grave + context = ctrl+shift+period [urgency_low] - # IMPORTANT: colors have to be defined in quotation marks. - # Otherwise the "#" and following would be interpreted as a comment. - background = "#263238" - foreground = "#556064" - timeout = 10 + background = "#24273a" + foreground = "#abb2bf" + timeout = 5 [urgency_normal] - background = "#263238" - foreground = "#F9FAF9" - timeout = 10 + background = "#24273a" + foreground = "#abb2bf" + timeout = 20 [urgency_critical] - background = "#D62929" - foreground = "#F9FAF9" + background = "#ed8796" + foreground = "#abb2bf" timeout = 0 - - -# Every section that isn't one of the above is interpreted as a rules to -# override settings for certain messages. -# Messages can be matched by "appname", "summary", "body", "icon", "category", -# "msg_urgency" and you can override the "timeout", "urgency", "foreground", -# "background", "new_icon" and "format". -# Shell-like globbing will get expanded. -# -# SCRIPTING -# You can specify a script that gets run when the rule matches by -# setting the "script" option. -# The script will be called as follows: -# script appname summary body icon urgency -# where urgency can be "LOW", "NORMAL" or "CRITICAL". -# -# NOTE: if you don't want a notification to be displayed, set the format -# to "". -# NOTE: It might be helpful to run dunst -print in a terminal in order -# to find fitting options for rules. - -#[espeak] -# summary = "*" -# script = dunst_espeak.sh - -#[script-test] -# summary = "*script*" -# script = dunst_test.sh - -#[ignore] -# # This notification will not be displayed -# summary = "foobar" -# format = "" - -#[signed_on] -# appname = Pidgin -# summary = "*signed on*" -# urgency = low -# -#[signed_off] -# appname = Pidgin -# summary = *signed off* -# urgency = low -# -#[says] -# appname = Pidgin -# summary = *says* -# urgency = critical -# -#[twitter] -# appname = Pidgin -# summary = *twitter.com* -# urgency = normal -# -#[Claws Mail] -# appname = claws-mail -# category = email.arrived -# urgency = normal -# background = "#2F899E" -# foreground = "#FFA247" -# -#[mute.sh] -# appname = mute -# category = mute.sound -# script = mute.sh -# -#[JDownloader] -# appname = JDownloader -# category = JD -# background = "#FFA247" -# foreground = "#FFFFFF" -# -#[newsbeuter] -# summary = *Feeds* -# background = "#A8EB41" -# foreground = "#FFFFFF" -# -[irc] - appname = weechat - timeout = 0 - background = "#0033bb" - foreground = "#dddddd" -# -[weechat hl] - appname = weechat - category = weechat.HL - background = "#FF5C47" - foreground = "#FFFFFF" -# -[weechat pn] - appname = weechat - category = weechat.PM - background = "#D53B84" - foreground = "#FFFFFF" -# -#[CMUS] -# appname = CMUS -# category = cmus -# background = "#6C4AB7" -# foreground = "#FFE756" -# -# -# background = "#30AB70" -# foreground = "#F67245" -# -# vim: ft=cfg diff --git a/common/.config/eww/eww.scss b/common/.config/eww/eww.scss new file mode 100755 index 0000000..69fd071 --- /dev/null +++ b/common/.config/eww/eww.scss @@ -0,0 +1,658 @@ +/** Global *******************************************/ +*{ + all : unset; + font-family : feather; + font-family : Iosevka; +} + +/** Vars *********************************************/ + +$bg-color : #282c34; + +/** Background ***************************************/ +.bg { + background-image : url("images/bg.png"); + background-color : #474D59; + background-size : 117%; + background-position : center; + background-repeat : no-repeat; + opacity : 1; +} + +/** Generic window ***********************************/ +.genwin, .genwina, .genwinb, .genwinc, .genwind, .genwine, .genwinf, .genwing, .genwinh { + background-color : $bg-color; //#252933; #2E3440; +} + +.genwin { + border-radius : 16px; +} + +.genwina { + border-radius : 16px 16px 0 0; +} + +.genwinb { + border-radius : 0 16px 16px 16px; +} + +.genwinh { + border-radius : 16px 0 0 16px; +} + +.genwinc { + border-radius : 16px 16px 0 16px; +} + +.genwind { + border-radius : 46px 16px 16px 16px; +} + +.genwine { + border-radius : 16px 46px 16px 16px; +} + +.genwinf { + border-radius : 16px 16px 16px 46px; +} + +.genwing { + border-radius : 16px 16px 46px 16px; +} + +/** rxyhn's calendar *********************************/ +.cal-holder { + padding : 1rem 1rem .2rem; + font-size : 1em; + font-weight : bold; +} + +.cal_title_right, .cal_title_left { + font-size : 32px; + color : #EBCB8B; +} + +.cal_title { + margin : 16px 72px 4px 72px; + font-size : 16px; + color : #A3BE8C; +} + +.cal { + padding : .8rem .25rem 0rem; + margin-left : 10px; + + &.highlight { + padding : 10rem; + } +} + +calendar:selected { + color : #88C0D0; +} + +calendar.header { + color : #88C0D0; + font-weight : bold; +} + +calendar.button { + color : #D46389; +} + +calendar.highlight { + color : #D46389; + font-weight : bold; +} + +calendar:indeterminate { + color : $bg-color; +} + +/** Profile ******************************************/ +.face { + background-image : url('images/fox.png'); + background-size : 175px; + background-position : 50% 35%; + min-height : 175px; + min-width : 175px; + margin : 40px 0px 0px 2px; + border-radius : 100%; +} + +.fullname { + color : #D46389; + font-size : 30px; + font-weight : bold; +} + +.username { + color : #8FBCBB; + font-size : 22px; + font-weight : bold; + margin : -15px 0px 0px 0px; +} + +/** System ********************************************/ +.iconcpu, .iconmem, .iconbright, .iconbat { + font-size : 22px; + font-weight : normal; +} +.iconcpu { + color : #BF616A; +} +.iconmem { + color : #A3BE8C; +} +.iconbright { + color : #EBCB8B; +} +.iconbat { + color : #88C0D0; +} + +.cpu_bar, .mem_bar, .bright_bar, .bat_bar, scale trough { + all : unset; + background-color : #3A404C; + border-radius : 16px; + min-height : 12px; + min-width : 170px; +} + +.cpu_bar, .mem_bar, .bright_bar, .bat_bar, scale trough highlight { + all : unset; + border-radius : 16px; +} + +.cpu_bar scale trough highlight { + background-color : #BF616A; +} +.mem_bar scale trough highlight { + background-color : #A3BE8C; +} +.bright_bar scale trough highlight { + background-color : #EBCB8B; +} +.bat_bar scale trough highlight { + background-color : #88C0D0; +} + +/** Clock ********************************************/ +.time_hour, .time_min { + color : #81A1C1; + font-size : 45px; + font-weight : bold; +} +.time_hour { + margin : 10px 0px 0px 10px; +} +.time_min { + margin : 0px 0px 10px 0px; +} + +.time_mer { + color : #A3BE8C; + font-size : 30px; + font-weight : bold; + margin : 10px 0px 0px 0px; +} + +.time_day { + color : #EBCB8B; + font-size : 17px; + font-weight : normal; + margin : 0px 0px -30px 10px; +} + +/** Uptime ********************************************/ +.icontimer { + color : #B48EAD; + font-size : 50px; + font-weight : normal; +} + +/** Music ***************************************/ +.album_art { + background-size : cover; + background-position : center; + min-height : 184px; + min-width : 184px; + margin : 20px; + border-radius : 14px; +} + +.song { + color : #8FBCBB; + font-size : 18px; + font-weight : bold; + margin : 15px 0px 0px 0px; +} + +.artist { + color : #EBCB8B; + font-size : 14px; + font-weight : normal; + margin : 0px 0px 0px 0px; +} + +.btn_prev, .btn_play, .btn_next { + font-family : Iosevka Nerd Font; +} +.btn_prev { + color : #EBCB8B; + font-size : 32px; + font-weight : normal; +} +.btn_play { + color : #A3BE8C; + font-size : 40px; + font-weight : bold; +} +.btn_next { + color : #EBCB8B; + font-size : 32px; + font-weight : normal; +} + +.music_bar scale trough highlight { + all : unset; + background-color : #B48EAD; + border-radius : 8px; +} +.music_bar scale trough { + all : unset; + background-color : #3A404C; + border-radius : 8px; + min-height : 10px; + min-width : 180px; + margin : 0px 10px 0px 0px; +} + +/** Weather ***************************************/ +.iconweather { + font-family : Iosevka Nerd Font; + font-size : 58px; + font-weight : normal; + margin : 10px 0px 0px 30px; +} + +.label_temp { + color : #A6D1DD; + font-size : 54px; + font-weight : bold; + margin : 15px 25px 0px 0px; +} + +.label_stat { + color : #BF616A; + font-size : 30px; + font-weight : bold; + margin : 10px 0px 0px 0px; +} + +.label_quote { + color : #E5E5E5; + font-size : 18px; + font-weight : normal; +} + +/** Applications ***************************************/ +.appbox { + margin : 10px 0px 0px 12px; +} + +.app_vivaldi, .app_telegram, .app_discord, .app_terminal, .app_obsidian, +.app_files, .app_neovim, .app_code, .app_krita, .app_vbox { + background-repeat : no-repeat; + background-size : 42px; + min-height : 42px; + min-width : 42px; + margin : 0 3px 0 3px; +} + +.app_vivaldi {} +.app_telegram {} +.app_discord {} +.app_terminal {} +.app_files {} +.app_obsidian { +} +.app_neovim { + background-size : 36px; + background-position : center; +} +.app_code {} +.app_krita {} +.app_vbox {} + +/** Links ***************************************/ +.iconweb, .iconmail { + color : #FFFFFF; + font-family : Iosevka Nerd Font; + font-size : 60px; + font-weight : normal; +} +.iconmail { + color : #DF584E; +} + +.github { + background-color : #24292E; + border-radius : 16px; +} +.reddit { + background-color : #E46231; + border-radius : 16px; +} +.twitter { + background-color : #61AAD6; + border-radius : 16px; +} +.youtube { + background-color : #DF584E; + border-radius : 16px; +} +.mail { + background-color : #FFFFFF; + border-radius : 16px; +} + +.mailbox { + background-color : #E5E5E5; + border-radius : 10px; + margin : 24px 0px 24px 0px; +} +.label_mails { + color : #404040; + font-size : 24px; + font-weight : bold; + margin : 0px 6px 0px 6px; +} + +/** Power buttons ***************************************/ +.btn_logout, .btn_sleep, .btn_reboot, .btn_poweroff { + font-size : 48px; + font-weight : bold; +} + +.btn_logout { + color : #BF616A; +} +.btn_sleep { + color : #A3BE8C; +} +.btn_reboot { + color : #EBCB8B; +} +.btn_poweroff { + color : #88C0D0; +} + +/** Home folders ***************************************/ +.hddbox { + background-color : #3A404C; + border-radius : 10px; + margin : 15px; +} +.hddicon { + color : #81A1C1; + font-family : Iosevka Nerd Font; + font-size : 70px; + font-weight : normal; + margin : 5px 10px 5px 15px; +} +.hdd_label { + color : #E5E9F0; + font-size : 32px; + font-weight : bold; + margin : 0px 0px 0px 10px; +} +.fs_sep { + color : #2E3440; + font-size : 34px; + font-weight : bold; +} + +.iconfolder1, .iconfolder2, .iconfolder3, .iconfolder4, .iconfolder5, .iconfolder6 { + font-family : Iosevka Nerd Font; + font-size : 24px; + font-weight : normal; + margin : 0px 0px 0px 25px; +} +.iconfolder1 { + color : #BF616A; +} +.iconfolder2 { + color : #A3BE8C; +} +.iconfolder3 { + color : #EBCB8B; +} +.iconfolder4 { + color : #81A1C1; +} +.iconfolder5 { + color : #B48EAD; +} +.iconfolder6 { + color : #88C0D0; +} + +.label_folder1, .label_folder2, .label_folder3, .label_folder4, .label_folder5, .label_folder6 { + font-size : 22px; + font-weight : normal; + margin : 0px 0px 0px 30px; +} +.label_folder1 { + color : #BF616A; +} +.label_folder2 { + color : #A3BE8C; +} +.label_folder3 { + color : #EBCB8B; +} +.label_folder4 { + color : #81A1C1; +} +.label_folder5 { + color : #B48EAD; +} +.label_folder6 { + color : #88C0D0; +} + +/*--|> NeoMusic <|--*/ + +.art { + background-size : 62%; + background-repeat : no-repeat; + background-position : 100% 50%; + border-radius : 18px 16px 16px 18px; +} + +.music_main, .art { + min-width : 396px; +} + +.music_main { + border-radius : 16px; +} + +.music_main .song { + font-size : 24px; +} + +.music_main .artist { + margin : 0 0 32px 0; + font-size : 16px; +} + +.music_main .artist { + color : #E5C07b; +} + +.music_main .song { + color : #61AFEF; +} + +.music_main .btn_next, .music_main .btn_prev { + font-size : 30px; + color : #E5C07b; +} + +.music_main .btn_play { + font-size : 40px; + color : #98c379; +} + +.music_main .control, .music_main .song, .music_main .artist { + padding : 4px 0 4px 10px; + letter-spacing : 2px; +} + +.music_main { + background : linear-gradient(120deg, $bg-color /*#282c34*/ 55%, transparent); + padding : 4px 10px 4px 10px; +} + +/*--> NeoProfile <--*/ + +.avatar{ + border-radius : 18px; + background-size : cover; + background-position : 50% 100%; +} + +.profile_main { + border-radius : 16px; +} + +.profile_main { + background : linear-gradient(-5deg, $bg-color 10%, transparent, $bg-color 75%); + min-width : 246px; +} + +.fullname { + margin : 10px 0 0 0; + color : #D46389; + font-size : 28px; + font-weight : bold; +} + +.username { + color : #8FBCBB; + font-size : 22px; + font-weight : bold; + margin : -15px 0px 0px 0px; +} + +/*--|> NeoClock <|--*/ + +.uptitle { + color : #EBCB8B; + font-size : 22px; +} + +.updays { + color : #81A1C1; + font-size : 28px; + font-weight : bold; +} + +.uptime { + color : #61AFEF; + //color : #E5E9F0; + font-size : 24px; + font-weight : bold; +} + +.nclock { + margin : 0px 0px 0px 26px; +} + +.ntime_hour, .ntime_min { + color : #81A1C1; + font-size : 45px; + font-weight : bold; +} +.ntime_hour { + margin : 0px; +} +.ntime_min { + margin : 0px 0px 0px 2px; +} + +.ntime_date { + margin : 6px 0px -6px 0px; + color : #61AFEF; + font-size : 17px; + font-weight : bold; +} + +.ntime_mers *:nth-child(1) { + margin : 8px 0px 0px 0px; +} + +.ntime_mer { + color : #A3BE8C; + font-size : 16px; + font-weight : bold; +} + +.ntime_day { + margin : -8px 0px 0px 0px; + color : #EBCB8B; + font-size : 18px; + font-weight : normal; +} + +/*--> Workspaces <--*/ +.ws1, .ws2, .ws3, .ws4, .ws5, .ws6, .ws7, .ws8, .ws9, .ws10 { + font-size : 24px; +} +.ws1 { + color : #52E080; +} + +.ws2 { + color : #D70040; +} + +.ws3 { + color : #117dca; +} + +.ws4 { + color : #32a7d9; +} + +.ws5 { + color : #23cf5f; +} + +.ws6 { + color : #80461b; +} + +.ws7 { + color : #f4c430; +} + +.ws8 { + color : #DA70D6; +} + +.ws9 { + color : #800020; +} + +.ws10 { + color : #F5F5F5; +} + +.ws_holder { + margin : 24px 0 0 0; +} + +/** EOF *************************************************/ diff --git a/common/.config/eww/eww.yuck b/common/.config/eww/eww.yuck new file mode 100755 index 0000000..7ea9948 --- /dev/null +++ b/common/.config/eww/eww.yuck @@ -0,0 +1,435 @@ +;; ** +;; ** Widgets config for EWW +;; ** Created by : @adi1090x +;; ** Modified by : Dusty + + + + + ;; Profile vars + (defvar IMAGE "images/fox.png") + (defvar NAME "Dustyn Senior") + (defpoll UNAME :interval "5m" "whoami") + + ;; System vars + (defpoll HOST :interval "5s" "hostname") + (defpoll CPU_USAGE :interval "1s" "~/.config/eww/scripts/sys_info --cpu") + (defpoll MEM_USAGE :interval "1s" "~/.config/eww/scripts/sys_info --mem") + (defpoll BLIGHT :interval "1s" "~/.config/eww/scripts/sys_info --blight") + (defpoll BATTERY :interval "5s" "~/.config/eww/scripts/sys_info --bat") + + ;; Time vars + (defpoll HOUR :interval "5s" "date +\"%I\"") + (defpoll MIN :interval "5s" "date +\"%M\"") + (defpoll MERA :interval "5s" "date +\"%p\" | cut -b 1") + (defpoll MERB :interval "5s" "date +\"%p\" | cut -b 2") + (defpoll DAY :interval "5s" "date +\"%A\"") + (defpoll DATE :interval "5s" "date +\"%d.%m.%Y\"") + + ;; Uptime vars + (defpoll UPDAYS :interval "5s" "echo $(($(cat /proc/uptime | cut -d \".\" -f 1) / 60 / 60 / 24))d") + (defpoll UPTIME :interval "5s" "printf %02d:%02d $(($(cat /proc/uptime | cut -d \".\" -f 1) / 60 / 60 % 24)) $(($(cat /proc/uptime | cut -d \".\" -f 1) / 60 % 60))") + ;; (defpoll UPHOUR :interval "5s" "uptime -p | awk '{print $2 \" \" $3}' | sed 's/,//g'") + ;; (defpoll UPMIN :interval "5s" "uptime -p | awk '{print $4 \" \" $5}'") + + ;; Music vars + (defpoll SONG :interval "1s" "~/.config/eww/scripts/music_info --song") + (defpoll ARTIST :interval "1s" "~/.config/eww/scripts/music_info --artist") + (defpoll STATUS :interval "1s" "~/.config/eww/scripts/music_info --status") + (defpoll COVER :interval "1s" "~/.config/eww/scripts/music_info --cover") + + ;; Weather vars + (defpoll ICON :interval "15m" "~/.config/eww/scripts/weather_info --icon") + (defpoll STAT :interval "15m" "~/.config/eww/scripts/weather_info --stat") + (defpoll TEMP :interval "15m" "~/.config/eww/scripts/weather_info --temp") + (defpoll HEX :interval "15m" "~/.config/eww/scripts/weather_info --hex") + (defpoll QUOTE :interval "15m" "~/.config/eww/scripts/weather_info --quote") + (defpoll QUOTE2 :interval "15m" "~/.config/eww/scripts/weather_info --quote2") + + ;; Apps vars + (defpoll MAILS :interval "5m" "~/.config/eww/scripts/mails") + + ;; Files vars + (defpoll FREE :interval "5s" "df -h / | awk '{print $4}' | tail -n 1 | sed 's/G/GB/'") + + ;; Calendar + (defpoll CALDAY :interval "10h" "date '+%d'") + (defpoll CALMONTH :interval "10h" "$(($(date +%m)-1))") + (defpoll CALYEAR :interval "10h" "date '+%Y'") + + + + +;; ******************************************************************************** + + + + ;; background + (defwidget bg [] + (box :class "bg")) + + ;; profile + (defwidget user [] + (box :class "genwin" :orientation "v" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" + (box :class "face" :halign "center" :style "background-image: url('${IMAGE}');") + (label :class "fullname" :halign "center" :wrap "true" :limit-width 25 :text NAME) + (label :class "username" :halign "center" :wrap "true" :limit-width 25 :text UNAME))) + + ;; NeoProfile + (defwidget nuser [] + (box :class "genwina" :space-evenly "false" :vexpand "false" :hexpand "false" + (box :class "avatar" :vexpand "false" :hexpand "false" :style "background-image: url('${IMAGE}');" + (box :class "profile_main" :orientation "v" :spacing 15 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "fullname" :halign "center" :wrap "true" :limit-width 25 :text NAME) + (label :class "username" :halign "center" :wrap "true" :limit-width 25 :text UNAME))))) + + ;; system + (defwidget system [] + (box :class "genwin" :vexpand "false" :hexpand "false" + (box :orientation "v" :spacing 25 :halign "center" :valign "center" :space-evenly "false" :vexpand "false" :hexpand "false" + (box :class "cpu_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "iconcpu" :text "") + (scale :min 0 :max 100 :value CPU_USAGE :active "false")) + (box :class "mem_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "iconmem" :text "") + (scale :min 0 :max 100 :value MEM_USAGE :active "false")) + (box :class "bright_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "iconbright" :text "") + (scale :min 0 :max 100 :value BLIGHT :active "false")) + (box :class "bat_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "iconbat" :text "") + (scale :min 0 :max 100 :value BATTERY :active "false"))))) + + ;; clock + (defwidget clock [] + (box :class "genwin" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "time_hour" :valign "start" :wrap "true" :limit-width 25 :text HOUR) + (label :class "time_min" :valign "end" :wrap "true" :limit-width 25 :text MIN) + (box :orientation "v" :spacing 10 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "time_mer" :halign "end" :wrap "true" :limit-width 25 :text "${MERA}${MERB}") + (label :class "time_day" :halign "end" :wrap "true" :limit-width 25 :text DAY)))) + + ;; NeoClock + (defwidget nclock [] + (box :class "genwinc" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" + (box :orientation "v" :class "nclock" :valign "center" :spacing 0 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "uptitle" :halign "center" :wrap "true" :limit-width 25 :text "Uptime") + (label :class "updays" :halign "center" :wrap "true" :limit-width 25 :text "祥 ${UPDAYS}") + (label :class "uptime" :halign "center" :wrap "true" :limit-width 25 :text UPTIME)) + (box :orientation "v" :valign "center" :spacing 0 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "ntime_date" :halign "center" :wrap "true" :limit-width 25 :text DATE) + (box :orientation "h" :halign "center" :spacing 8 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "ntime_hour" :valign "start" :wrap "true" :limit-width 25 :text HOUR) + (box :orientation "v" :class "ntime_mers" :spacing 0 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "ntime_mer" :halign "end" :wrap "true" :limit-width 25 :text MERA) + (label :class "ntime_mer" :halign "end" :wrap "true" :limit-width 25 :text MERB)) + (label :class "ntime_min" :valign "end" :wrap "true" :limit-width 25 :text MIN)) + (label :class "ntime_day" :halign "center" :wrap "true" :limit-width 25 :text DAY)))) + + ;; NeoCalendar (rxyhn's calendar) + (defwidget cal [] + (box :class "genwin" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false" + (box :class "cal_holder" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false" + (box :class "title_holder" :orientation "h" :space-evenly "false" :halign "center" :vexpand "false" :hexpand "false" + (label :class "cal_title_left" :halign "start" :wrap "true" :text "·") + (label :class "cal_title" :halign "center" :wrap "true" :text "Calendar") + (label :class "cal_title_right" :halign "end" :wrap "true" :text "·")) + (calendar :class "cal" :day CALDAY :month CALMONTH :year CALYEAR)))) + + ;; uptime + (defwidget uptime [] + (box :class "genwin" + (box :orientation "h" :halign "center" :spacing 30 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "icontimer" :valign "center" :text "祥") + (box :orientation "v" :valign "center" :spacing 0 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "updays" :halign "center" :wrap "true" :limit-width 25 :text UPDAYS) + (label :class "uptime" :halign "center" :wrap "true" :limit-width 25 :text UPTIME))))) + + ;; Music + (defwidget music [] + (box :class "genwin" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (box :class "album_art" :vexpand "false" :hexpand "false" :style "background-image: url('${COVER}');") + (box :orientation "v" :spacing 29 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :halign "center" :class "song" :wrap "true" :limit-width 15 :text SONG) + (label :halign "center" :class "artist" :wrap "true" :limit-width 18 :text ARTIST) + (box :orientation "h" :spacing 15 :halign "center" :space-evenly "true" :vexpand "false" :hexpand "false" + (button :class "btn_prev" :onclick "~/.config/eww/scripts/music_info --prev" "玲") + (button :class "btn_play" :onclick "~/.config/eww/scripts/music_info --toggle" STATUS) + (button :class "btn_next" :onclick "~/.config/eww/scripts/music_info --next" "怜")) + (box :class "music_bar" :halign "center" :vexpand "false" :hexpand "false" + ;; (scale :onscroll "mpc -q seek +1" :min 0 :active "true" :max 100 :value CURRENT) + )))) + + ;; Spotify + (defwidget spotify [] + (box :class "genwinb" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (box :class "art" :vexpand "false" :hexpand "false" :style "background-image: url('${COVER}');" + (box :class "music_main" :orientation "v" :spacing 15 :space-evenly "false" :vexpand "false" :hexpand "false" + (label :halign "start" :class "song" :wrap "false" :limit-width 15 :text SONG) + (label :halign "start" :class "artist" :wrap "false" :limit-width 15 :text ARTIST) + (box :orientation "h" :class "control" :spacing 20 :halign "start" :valign "end" :space-evenly "true" :vexpand "false" :hexpand "false" + (button :class "btn_prev" :onclick "~/.config/eww/scripts/music_info --prev" "玲") + (button :class "btn_play" :onclick "~/.config/eww/scripts/music_info --toggle" STATUS) + (button :class "btn_next" :onclick "~/.config/eww/scripts/music_info --next" "怜")))))) + + ;; github + (defwidget github [] + (box :class "github" :vexpand "false" :hexpand "false" + (button :class "iconweb" :onclick "~/.config/eww/scripts/open_links --gh" ""))) + + ;; reddit + (defwidget reddit [] + (box :class "reddit" :vexpand "false" :hexpand "false" + (button :class "iconweb" :onclick "~/.config/eww/scripts/open_links --rd" "樓"))) + + ;; twitter + (defwidget twitter [] + (box :class "twitter" :vexpand "false" :hexpand "false" + (button :class "iconweb" :onclick "~/.config/eww/scripts/open_links --tw" ""))) + + ;; youtube + (defwidget youtube [] + (box :class "youtube" :vexpand "false" :hexpand "false" + (button :class "iconweb" :onclick "~/.config/eww/scripts/open_links --yt" ""))) + + ;; mail + (defwidget mail [] + (box :class "mail" + (box :orientation "h" :halign "center" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconmail" :onclick "~/.config/eww/scripts/open_links --mail" "") + (box :class "mailbox" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "label_mails" :onclick "~/.config/eww/scripts/open_links --mail" MAILS))))) + + ;; weather + (defwidget weather_info [] + (box :orientation "h" :vexpand "false" :hexpand "false" + (label :class "iconweather" :halign "start" :style "color: ${HEX};" :text ICON) + (label :class "label_stat" :valign "center" :text STAT) + (label :class "label_temp" :halign "end" :text TEMP))) + (defwidget weather_quotes [] + (box :orientation "v" :spacing 15 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "label_quote" :text QUOTE) + (label :class "label_quote" :text QUOTE2))) + + ;; apps + (defwidget apps [] + (box :class "genwinh" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (box :class "appbox" :orientation "v" :spacing 18 :space-evenly "false" :vexpand "false" :hexpand "false" + (button :style "background-image: url('images/icons/vivaldi.svg');" :class "app_vivaldi" :onclick "~/.config/eww/scripts/open_apps --vd") + (button :style "background-image: url('images/icons/telegram.svg');" :class "app_telegram" :onclick "~/.config/eww/scripts/open_apps --tg") + (button :style "background-image: url('images/icons/discord.svg');" :class "app_discord" :onclick "~/.config/eww/scripts/open_apps --dc") + (button :style "background-image: url('images/icons/terminal.svg');" :class "app_terminal" :onclick "~/.config/eww/scripts/open_apps --tr") + (button :style "background-image: url('images/icons/files.svg');" :class "app_files" :onclick "~/.config/eww/scripts/open_apps --fm")) + (box :class "appbox" :orientation "v" :spacing 18 :space-evenly "false" :vexpand "false" :hexpand "false" + (button :style "background-image: url('images/icons/code.svg');" :class "app_code" :onclick "~/.config/eww/scripts/open_apps --cd") + (button :style "background-image: url('images/icons/krita.svg');" :class "app_krita" :onclick "~/.config/eww/scripts/open_apps --kr") + (button :style "background-image: url('images/icons/virtualbox.svg');" :class "app_vbox" :onclick "~/.config/eww/scripts/open_apps --vb") + (button :style "background-image: url('images/icons/obsidian.svg');" :class "app_obsidian" :onclick "~/.config/eww/scripts/open_apps --ob") + (button :style "background-image: url('images/icons/neovim.svg');" :class "app_neovim" :onclick "~/.config/eww/scripts/open_apps --nv")))) + + ;; power buttons + (defwidget logout [] + (box :class "genwind" :vexpand "false" :hexpand "false" + (button :class "btn_logout" :onclick "openbox --exit" ""))) + (defwidget sleep [] + (box :class "genwine" :vexpand "false" :hexpand "false" + (button :class "btn_sleep" :onclick "systemctl suspend" ""))) + (defwidget reboot [] + (box :class "genwinf" :vexpand "false" :hexpand "false" + (button :class "btn_reboot" :onclick "systemctl reboot" ""))) + (defwidget poweroff [] + (box :class "genwing" :vexpand "false" :hexpand "false" + (button :class "btn_poweroff" :onclick "systemctl poweroff" ""))) + + ;; folders + (defwidget folders [] + (box :class "genwinb" :orientation "v" :spacing 4 :space-evenly "false" :vexpand "false" :hexpand "false" + (box :class "hddbox" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (box :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "hddicon" :onclick "~/.config/eww/scripts/open_apps --fm" "")) + (label :class "fs_sep" :text "|") + (box :space-evenly "false" :vexpand "false" :hexpand "false" + (label :class "hdd_label" :wrap "true" :limit-width 25 :text FREE))) + (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconfolder1" :onclick "~/.config/eww/scripts/open_folders --docs" "") + (button :class "label_folder1" :onclick "~/.config/eww/scripts/open_folders --docs" "Documents")) + (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconfolder2" :onclick "~/.config/eww/scripts/open_folders --dl" "") + (button :class "label_folder2" :onclick "~/.config/eww/scripts/open_folders --dl" "Downloads")) + (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconfolder3" :onclick "~/.config/eww/scripts/open_folders --music" "") + (button :class "label_folder3" :onclick "~/.config/eww/scripts/open_folders --music" "Music")) + (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconfolder4" :onclick "~/.config/eww/scripts/open_folders --pics" "") + (button :class "label_folder4" :onclick "~/.config/eww/scripts/open_folders --pics" "Pictures")) + (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconfolder5" :onclick "~/.config/eww/scripts/open_folders --cfg" "ﮛ") + (button :class "label_folder5" :onclick "~/.config/eww/scripts/open_folders --cfg" "~/.config")) + (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "iconfolder6" :onclick "~/.config/eww/scripts/open_folders --local" "ﮛ") + (button :class "label_folder6" :onclick "~/.config/eww/scripts/open_folders --local" "~/.local")))) + + ;; workspaces + (defwidget workspaces[] + (box :class "genwinb" :orientation "v" :spacing 25 :space-evenly "false" :vexpand "false" :hexpand "false" + (box :orientation "h" :class "ws_holder" :spacing 18 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "ws1" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"1 : \"" "") + (button :class "ws2" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"2 : \"" "") + (button :class "ws3" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"3 : \"" "") + (button :class "ws4" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"4 : 切\"" "切") + (button :class "ws5" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"5 : \"" "")) + (box :orientation "h" :spacing 15 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false" + (button :class "ws6" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"6 : \"" "") + (button :class "ws7" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"7 : \"" "") + (button :class "ws8" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"8 : \"" "") + (button :class "ws9" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"9 : \"" "") + (button :class "ws10" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"10 : \"" "")))) + + + ;; outers + (defwidget outera[] + (box :style "background:transparent;border-radius:20px;box-shadow:16px 16px 0 0 #282c34;")) + + (defwidget outerb[] + (box :style "background:transparent;border-radius:20px;box-shadow:-16px 16px 0 0 #282c34;")) + + (defwidget outerc[] + (box :style "background:transparent;border-radius:20px;box-shadow:16px -16px 0 0 #282c34;")) + + +;; ******************************************************************************** + + + + ;; background + (defwindow background :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 0 :y 0 :width "1360px" :height "768px") + (bg)) + + ;; profile + (defwindow profile :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 109 :y 109 :width 246 :height 326) + (nuser)) + + ;; system + (defwindow system :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 365 :y 109 :width 246 :height 204) + (system)) + + ;; clock + (defwindow clock :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 365 :y 323 :width 246 :height 102) + (nclock)) + + ;; uptime + (defwindow uptime :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 365 :y 221 :width 206 :height 102) + (uptime)) + + ;; music + (defwindow music :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 109 :y 434 :width 416 :height 224) + (spotify)) + + ;; github + (defwindow github :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 535 :y 567 :width 96 :height 92) + (github)) + + ;; reddit + (defwindow reddit :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 641 :y 567 :width 96 :height 92) + (reddit)) + + ;; twitter + (defwindow twitter :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 747 :y 567 :width 96 :height 92) + (twitter)) + + ;; youtube + (defwindow youtube :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 853 :y 567 :width 96 :height 92) + (youtube)) + + ;; weather + (defwindow weather_info :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 341 :y 10 :width 438 :height 59) + (weather_info)) + (defwindow weather_quotes :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 461 :y 679 :width 438 :height 99) + (weather_quotes)) + + ;; apps + (defwindow apps :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 621 :y 109 :width 126 :height 306) + (apps)) + + ;; mail + (defwindow mail :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 747 :y 465 :width 202 :height 92) + (mail)) + + ;; logout + (defwindow logout :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 1032 :y 109 :width 104 :height 102) + (logout)) + + ;; sleep + (defwindow sleep :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 1147 :y 109 :width 104 :height 102) + (sleep)) + + ;; reboot + (defwindow reboot :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 1032 :y 221 :width 104 :height 102) + (reboot)) + + ;; poweroff + (defwindow poweroff :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 1147 :y 221 :width 104 :height 102) + (poweroff)) + + ;; folders + (defwindow folders :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 747 :y 109 :width 202 :height 346) + (folders)) + + ;; workspaces + (defwindow workspaces :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 535 :y 425 :width 202 :height 132) + (workspaces)) + + ;; calendar + (defwindow calendar :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 530 :y 38 :width 270 :height 60) + (cal)) + + ;; calendar outer 1 + (defwindow roundeda :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x "630px" :y "7px" :width "32px" :height "32px") + (outera)) + + ;; calendar outer 2 + (defwindow roundedb :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x "662px" :y "7px" :width "32px" :height "32px") + (outerb)) + + ;; profile outer 1 + (defwindow roundedc :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x "355px" :y "403px" :width "32px" :height "32px") + (outerb)) + + ;; clock outer 1 + (defwindow roundedd :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 611 :y 393 :width 32 :height 32) + (outerb)) + + ;; clock outer 2 + (defwindow roundede :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 503 :y 425 :width 32 :height 32) + (outerc)) + + ;; apps outer 1 + (defwindow roundedf :stacking "fg" :focusable "false" :screen 1 + :geometry (geometry :x 715 :y 415 :width 32 :height 32) + (outerc)) diff --git a/common/.config/eww/images/bg.png b/common/.config/eww/images/bg.png new file mode 100755 index 0000000..b706936 Binary files /dev/null and b/common/.config/eww/images/bg.png differ diff --git a/common/.config/eww/images/fox.png b/common/.config/eww/images/fox.png new file mode 100755 index 0000000..47c09e3 Binary files /dev/null and b/common/.config/eww/images/fox.png differ diff --git a/common/.config/eww/images/icons/code.svg b/common/.config/eww/images/icons/code.svg new file mode 100755 index 0000000..b340b75 --- /dev/null +++ b/common/.config/eww/images/icons/code.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/common/.config/eww/images/icons/discord.svg b/common/.config/eww/images/icons/discord.svg new file mode 100755 index 0000000..a02373d --- /dev/null +++ b/common/.config/eww/images/icons/discord.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/common/.config/eww/images/icons/files.svg b/common/.config/eww/images/icons/files.svg new file mode 100755 index 0000000..8a2c892 --- /dev/null +++ b/common/.config/eww/images/icons/files.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/common/.config/eww/images/icons/firefox.svg b/common/.config/eww/images/icons/firefox.svg new file mode 100755 index 0000000..e14fafa --- /dev/null +++ b/common/.config/eww/images/icons/firefox.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/common/.config/eww/images/icons/geany.svg b/common/.config/eww/images/icons/geany.svg new file mode 100755 index 0000000..94029ba --- /dev/null +++ b/common/.config/eww/images/icons/geany.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/common/.config/eww/images/icons/gimp.svg b/common/.config/eww/images/icons/gimp.svg new file mode 100755 index 0000000..3a96df9 --- /dev/null +++ b/common/.config/eww/images/icons/gimp.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/.config/eww/images/icons/krita.svg b/common/.config/eww/images/icons/krita.svg new file mode 100644 index 0000000..ab06e45 --- /dev/null +++ b/common/.config/eww/images/icons/krita.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/common/.config/eww/images/icons/neovim.svg b/common/.config/eww/images/icons/neovim.svg new file mode 100644 index 0000000..17106f0 --- /dev/null +++ b/common/.config/eww/images/icons/neovim.svg @@ -0,0 +1 @@ +Created with Sketch (http://www.bohemiancoding.com/sketch) \ No newline at end of file diff --git a/common/.config/eww/images/icons/obsidian.svg b/common/.config/eww/images/icons/obsidian.svg new file mode 100644 index 0000000..7d50e4a --- /dev/null +++ b/common/.config/eww/images/icons/obsidian.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/common/.config/eww/images/icons/telegram.svg b/common/.config/eww/images/icons/telegram.svg new file mode 100755 index 0000000..37c62cf --- /dev/null +++ b/common/.config/eww/images/icons/telegram.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/common/.config/eww/images/icons/terminal.svg b/common/.config/eww/images/icons/terminal.svg new file mode 100755 index 0000000..ea2f949 --- /dev/null +++ b/common/.config/eww/images/icons/terminal.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/common/.config/eww/images/icons/virtualbox.svg b/common/.config/eww/images/icons/virtualbox.svg new file mode 100755 index 0000000..3883061 --- /dev/null +++ b/common/.config/eww/images/icons/virtualbox.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/common/.config/eww/images/icons/vivaldi.svg b/common/.config/eww/images/icons/vivaldi.svg new file mode 100755 index 0000000..ba78d92 --- /dev/null +++ b/common/.config/eww/images/icons/vivaldi.svg @@ -0,0 +1,174 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/.config/eww/images/music.png b/common/.config/eww/images/music.png new file mode 100755 index 0000000..3ded333 Binary files /dev/null and b/common/.config/eww/images/music.png differ diff --git a/common/.config/eww/images/profile.jpg b/common/.config/eww/images/profile.jpg new file mode 100755 index 0000000..575528e Binary files /dev/null and b/common/.config/eww/images/profile.jpg differ diff --git a/common/.config/eww/images/spotify.jpg b/common/.config/eww/images/spotify.jpg new file mode 100644 index 0000000..61f88d0 Binary files /dev/null and b/common/.config/eww/images/spotify.jpg differ diff --git a/common/.config/eww/launch_eww b/common/.config/eww/launch_eww new file mode 100755 index 0000000..3741070 --- /dev/null +++ b/common/.config/eww/launch_eww @@ -0,0 +1,48 @@ +#!/bin/bash + +## Files and cmd +FILE="$HOME/.cache/eww_launch.xyz" +EWW="/usr/bin/eww" + +## Run eww daemon if not running already +if [[ ! `pidof eww` ]]; then + ${EWW} daemon + sleep 1 +fi + +## Open widgets +run_eww() { + ${EWW} open-many \ + background \ + profile \ + system \ + clock \ + music \ + github \ + reddit \ + twitter \ + youtube \ + apps \ + workspaces \ + logout \ + mail \ + sleep \ + reboot \ + poweroff \ + weather_info \ + weather_quotes \ + roundedc \ + roundedd \ + roundede \ + roundedf \ + folders \ +} + +## Launch or close widgets accordingly +if [[ ! -f "$FILE" ]]; then + touch "$FILE" + run_eww +else + ${EWW} close-all + rm "$FILE" +fi diff --git a/common/.config/eww/launch_eww_cal b/common/.config/eww/launch_eww_cal new file mode 100755 index 0000000..c7fa5f2 --- /dev/null +++ b/common/.config/eww/launch_eww_cal @@ -0,0 +1,28 @@ +#!/bin/bash + +## Files and cmd +FILE="$HOME/.cache/eww_launch.xyz" +EWW="/usr/bin/eww" + +## Run eww daemon if not running already +if [[ ! `pidof eww` ]]; then + ${EWW} daemon + sleep 1 +fi + +## Open widgets +run_eww() { + ${EWW} open-many \ + roundeda \ + roundedb \ + calendar +} + +## Launch or close widgets accordingly +if [[ ! -f "$FILE" ]]; then + touch "$FILE" + run_eww +else + ${EWW} close-all + rm "$FILE" +fi diff --git a/common/.config/eww/scripts/mails b/common/.config/eww/scripts/mails new file mode 100755 index 0000000..83511fd --- /dev/null +++ b/common/.config/eww/scripts/mails @@ -0,0 +1,7 @@ +#!/bin/python + +import imaplib +obj = imaplib.IMAP4_SSL('imap.gmail.com',993) +obj.login('MAIL','PASSWORD') # write your email and password +obj.select() +print(len(obj.search(None, 'UnSeen')[1][0].split())) diff --git a/common/.config/eww/scripts/music_info b/common/.config/eww/scripts/music_info new file mode 100755 index 0000000..f567a29 --- /dev/null +++ b/common/.config/eww/scripts/music_info @@ -0,0 +1,111 @@ +#!/bin/bash + +## Get data +# STATUS="$(mpc status)" +# COVER="/tmp/.music_cover.jpg" +# MUSIC_DIR="$HOME/Music" + +# DATA = `dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Metadata` + +# Playing, Paused or Stopped +# album = `dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Metadata | sed -n '/album/{n;p}' | cut -d '"' -f 2 | head -n 1` + +## Get status +get_status() { + status=`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' string:'PlaybackStatus'|egrep -A 1 "string"|cut -b 26-|cut -d '"' -f 1|egrep -v ^$` + if [[ "$(pidof spotify || echo 1)" != "1" ]]; then + if [[ "$status" == "Playing" ]]; then + echo "" + else + echo "喇" + fi + else + echo "" + fi +} + +## Get song +get_song() { + title=`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Metadata | sed -n '/title/{n;p}' | cut -d '"' -f 2` + if [[ "$(pidof spotify || echo 1)" != "1" ]]; then + echo "$title" + else + echo "Offline" + fi +} + +## Get artist +get_artist() { + artist=`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Metadata | sed -n '/artist/{n;n;p}' | cut -d '"' -f 2` + if [[ "$(pidof spotify || echo 1)" != "1" ]]; then + echo "$artist" + else + echo "Offline" + 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() { + art=`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Metadata | sed -n '/artUrl/{n;p}' | cut -d '"' -f 2` + if [[ "$(pidof spotify || echo 1)" != "1" ]]; then + echo "$art" + else + echo "images/spotify.jpg" + fi +} + +# Toggle +toggle() { + if [[ "$(pidof spotify || echo 1)" != "1" ]]; then + dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause + 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 + toggle +elif [[ "$1" == "--next" ]]; then + { dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next; get_cover; } +elif [[ "$1" == "--prev" ]]; then + { dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous; get_cover; } +fi diff --git a/common/.config/eww/scripts/open_apps b/common/.config/eww/scripts/open_apps new file mode 100755 index 0000000..6c04f85 --- /dev/null +++ b/common/.config/eww/scripts/open_apps @@ -0,0 +1,34 @@ +#!/bin/bash + +## Open Applications +FILE="$HOME/.cache/eww_launch.xyz" +EWW="/usr/bin/eww" + +if [[ "$1" == "--vd" ]]; then + ${EWW} close-all && rm -rf "$FILE" && vivaldi-stable & + +elif [[ "$1" == "--tg" ]]; then + ${EWW} close-all && rm -rf "$FILE" && telegram-desktop & + +elif [[ "$1" == "--dc" ]]; then + ${EWW} close-all && rm -rf "$FILE" && discord & + +elif [[ "$1" == "--tr" ]]; then + ${EWW} close-all && rm -rf "$FILE" && urxvt & + +elif [[ "$1" == "--fm" ]]; then + ${EWW} close-all && rm -rf "$FILE" && thunar ~ & + +elif [[ "$1" == "--nv" ]]; then + ${EWW} close-all && rm -rf "$FILE" && urxvt -e sh -c "nvim" & + +elif [[ "$1" == "--cd" ]]; then + ${EWW} close-all && rm -rf "$FILE" && code & + +elif [[ "$1" == "--kr" ]]; then + ${EWW} close-all && rm -rf "$FILE" && krita & + +elif [[ "$1" == "--vb" ]]; then + ${EWW} close-all && rm -rf "$FILE" && virtualbox & + +fi diff --git a/common/.config/eww/scripts/open_folders b/common/.config/eww/scripts/open_folders new file mode 100755 index 0000000..4a4d73e --- /dev/null +++ b/common/.config/eww/scripts/open_folders @@ -0,0 +1,25 @@ +#!/bin/bash + +## Open folders in thunar +FILE="$HOME/.cache/eww_launch.xyz" +EWW="/usr/bin/eww" + +if [[ "$1" == "--dl" ]]; then + ${EWW} close-all && rm -rf "$FILE" && thunar ~/Downloads & + +elif [[ "$1" == "--docs" ]]; then + ${EWW} close-all && rm -rf "$FILE" && thunar ~/Documents & + +elif [[ "$1" == "--music" ]]; then + ${EWW} close-all && rm -rf "$FILE" && thunar ~/Music & + +elif [[ "$1" == "--pics" ]]; then + ${EWW} close-all && rm -rf "$FILE" && thunar ~/Pictures & + +elif [[ "$1" == "--cfg" ]]; then + ${EWW} close-all && rm -rf "$FILE" && thunar ~/.config & + +elif [[ "$1" == "--local" ]]; then + ${EWW} close-all && rm -rf "$FILE" && thunar ~/.local/share & + +fi diff --git a/common/.config/eww/scripts/open_links b/common/.config/eww/scripts/open_links new file mode 100755 index 0000000..48085ed --- /dev/null +++ b/common/.config/eww/scripts/open_links @@ -0,0 +1,23 @@ +#!/bin/bash + +## Open links in firefox +FILE="$HOME/.cache/eww_launch.xyz" +EWW="/usr/bin/eww" +cmd="xdg-open" + +if [[ "$1" == "--mail" ]]; then + ${EWW} close-all && rm -rf "$FILE" && $cmd "https://mail.google.com" + +elif [[ "$1" == "--gh" ]]; then + ${EWW} close-all && rm -rf "$FILE" && $cmd "https://github.com" + +elif [[ "$1" == "--rd" ]]; then + ${EWW} close-all && rm -rf "$FILE" && $cmd "https://reddit.com" + +elif [[ "$1" == "--tw" ]]; then + ${EWW} close-all && rm -rf "$FILE" && $cmd "https://twitter.com" + +elif [[ "$1" == "--yt" ]]; then + ${EWW} close-all && rm -rf "$FILE" && $cmd "https://youtube.com" + +fi diff --git a/common/.config/eww/scripts/sys_info b/common/.config/eww/scripts/sys_info new file mode 100755 index 0000000..fefc7f4 --- /dev/null +++ b/common/.config/eww/scripts/sys_info @@ -0,0 +1,78 @@ +#!/bin/bash + +## Files and Data +PREV_TOTAL=0 +PREV_IDLE=0 +cpuFile="/tmp/.cpu_usage" + +## Get CPU usage +get_cpu() { + if [[ -f "${cpuFile}" ]]; then + fileCont=$(cat "${cpuFile}") + PREV_TOTAL=$(echo "${fileCont}" | head -n 1) + PREV_IDLE=$(echo "${fileCont}" | tail -n 1) + fi + + CPU=(`cat /proc/stat | grep '^cpu '`) # Get the total CPU statistics. + unset CPU[0] # Discard the "cpu" prefix. + IDLE=${CPU[4]} # Get the idle CPU time. + + # Calculate the total CPU time. + TOTAL=0 + + for VALUE in "${CPU[@]:0:4}"; do + let "TOTAL=$TOTAL+$VALUE" + done + + if [[ "${PREV_TOTAL}" != "" ]] && [[ "${PREV_IDLE}" != "" ]]; then + # Calculate the CPU usage since we last checked. + let "DIFF_IDLE=$IDLE-$PREV_IDLE" + let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL" + let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10" + echo "${DIFF_USAGE}" + else + echo "?" + fi + + # Remember the total and idle CPU times for the next check. + echo "${TOTAL}" > "${cpuFile}" + echo "${IDLE}" >> "${cpuFile}" +} + +## Get Used memory +get_mem() { + printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}') +} + +## Get Brightness +get_blight() { + CARD=`ls /sys/class/backlight | head -n 1` + + if [[ "$CARD" == *"intel_"* ]]; then + BNESS=`xbacklight -get` + LIGHT=${BNESS%.*} + else + BNESS=`blight -d $CARD get brightness` + PERC="$(($BNESS*100/255))" + LIGHT=${PERC%.*} + fi + + echo "$LIGHT" +} + +## Get Battery +get_battery() { + BAT=`ls /sys/class/power_supply | grep BAT | head -n 1` + cat /sys/class/power_supply/${BAT}/capacity +} + +## Execute accordingly +if [[ "$1" == "--cpu" ]]; then + get_cpu +elif [[ "$1" == "--mem" ]]; then + get_mem +elif [[ "$1" == "--blight" ]]; then + get_blight +elif [[ "$1" == "--bat" ]]; then + get_battery +fi diff --git a/common/.config/eww/scripts/weather_info b/common/.config/eww/scripts/weather_info new file mode 100755 index 0000000..5cc130a --- /dev/null +++ b/common/.config/eww/scripts/weather_info @@ -0,0 +1,147 @@ +#!/bin/bash + +## Collect data +cache_dir="$HOME/.cache/eww/weather" +cache_weather_stat=${cache_dir}/weather-stat +cache_weather_degree=${cache_dir}/weather-degree +cache_weather_quote=${cache_dir}/weather-quote +cache_weather_hex=${cache_dir}/weather-hex +cache_weather_icon=${cache_dir}/weather-icon + +## Weather data +KEY="API_KEY" +ID="CITY_ID" +UNIT="metric" # Available options : 'metric' or 'imperial' + +## Make cache dir +if [[ ! -d "$cache_dir" ]]; then + mkdir -p ${cache_dir} +fi + +## Get data +get_weather_data() { + weather=`curl -sf "http://api.openweathermap.org/data/2.5/weather?APPID=$KEY&id=$ID&units=$UNIT"` + echo ${weather} + + if [ ! -z "$weather" ]; then + weather_temp=`echo "$weather" | jq ".main.temp" | cut -d "." -f 1` + weather_icon_code=`echo "$weather" | jq -r ".weather[].icon" | head -1` + weather_description=`echo "$weather" | jq -r ".weather[].description" | head -1 | sed -e "s/\b\(.\)/\u\1/g"` + + #Big long if statement of doom + if [ "$weather_icon_code" == "50d" ]; then + weather_icon=" " + weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..." + weather_hex="#84afdb" + elif [ "$weather_icon_code" == "50n" ]; then + weather_icon=" " + weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..." + weather_hex="#84afdb" + elif [ "$weather_icon_code" == "01d" ]; then + weather_icon=" " + weather_quote="It's a sunny day, gonna be fun! \nDon't go wandering all by yourself though..." + weather_hex="#ffd86b" + elif [ "$weather_icon_code" == "01n" ]; then + weather_icon=" " + weather_quote="It's a clear night \nYou might want to take a evening stroll to relax..." + weather_hex="#fcdcf6" + elif [ "$weather_icon_code" == "02d" ]; then + weather_icon=" " + weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..." + weather_hex="#adadff" + elif [ "$weather_icon_code" == "02n" ]; then + weather_icon=" " + weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?" + weather_hex="#adadff" + elif [ "$weather_icon_code" == "03d" ]; then + weather_icon=" " + weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..." + weather_hex="#adadff" + elif [ "$weather_icon_code" == "03n" ]; then + weather_icon=" " + weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?" + weather_hex="#adadff" + elif [ "$weather_icon_code" == "04d" ]; then + weather_icon=" " + weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..." + weather_hex="#adadff" + elif [ "$weather_icon_code" == "04n" ]; then + weather_icon=" " + weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?" + weather_hex="#adadff" + elif [ "$weather_icon_code" == "09d" ]; then + weather_icon=" " + weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..." + weather_hex="#6b95ff" + elif [ "$weather_icon_code" == "09n" ]; then + weather_icon=" " + weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..." + weather_hex="#6b95ff" + elif [ "$weather_icon_code" == "10d" ]; then + weather_icon=" " + weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..." + weather_hex="#6b95ff" + elif [ "$weather_icon_code" == "10n" ]; then + weather_icon=" " + weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..." + weather_hex="#6b95ff" + elif [ "$weather_icon_code" == "11d" ]; then + weather_icon="" + weather_quote="There's storm for forecast today \nMake sure you don't get blown away..." + weather_hex="#ffeb57" + elif [ "$weather_icon_code" == "11n" ]; then + weather_icon="" + weather_quote="There's gonna be storms tonight \nMake sure you're warm in bed and the windows are shut..." + weather_hex="#ffeb57" + elif [ "$weather_icon_code" == "13d" ]; then + weather_icon=" " + weather_quote="It's gonna snow today \nYou'd better wear thick clothes and make a snowman as well!" + weather_hex="#e3e6fc" + elif [ "$weather_icon_code" == "13n" ]; then + weather_icon=" " + weather_quote="It's gonna snow tonight \nMake sure you get up early tomorrow to see the sights..." + weather_hex="#e3e6fc" + elif [ "$weather_icon_code" == "40d" ]; then + weather_icon=" " + weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..." + weather_hex="#84afdb" + elif [ "$weather_icon_code" == "40n" ]; then + weather_icon=" " + weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..." + weather_hex="#84afdb" + else + weather_icon=" " + weather_quote="Sort of odd, I don't know what to forecast \nMake sure you have a good time!" + weather_hex="#adadff" + fi + echo "$weather_icon" > ${cache_weather_icon} + echo "$weather_description" > ${cache_weather_stat} + echo "$weather_temp""°C" > ${cache_weather_degree} + echo -e "$weather_quote" > ${cache_weather_quote} + echo "$weather_hex" > ${cache_weather_hex} + else + echo "Weather Unavailable" > ${cache_weather_stat} + echo " " > ${cache_weather_icon} + echo -e "Ah well, no weather huh? \nEven if there's no weather, it's gonna be a great day!" > ${cache_weather_quote} + echo "-" > ${cache_weather_degree} + echo "#adadff" > ${tcache_weather_hex} + fi +} + +## Execute +if [[ "$1" == "--getdata" ]]; then + get_weather_data +elif [[ "$1" == "--icon" ]]; then + cat ${cache_weather_icon} +elif [[ "$1" == "--temp" ]]; then + cat ${cache_weather_degree} +elif [[ "$1" == "--hex" ]]; then + cat ${cache_weather_hex} +elif [[ "$1" == "--stat" ]]; then + cat ${cache_weather_stat} +elif [[ "$1" == "--quote" ]]; then + cat ${cache_weather_quote} | head -n1 +elif [[ "$1" == "--quote2" ]]; then + cat ${cache_weather_quote} | tail -n1 +fi + diff --git a/common/.config/i3/config b/common/.config/i3/config index e471a77..9da244f 100644 --- a/common/.config/i3/config +++ b/common/.config/i3/config @@ -47,9 +47,9 @@ exec --no-startup-id alternating_layouts.py font xft:DejaVu Sans Mono 12 bindsym $mod+Return exec wezterm +bindsym $mod+e exec --no-startup-id $HOME/.config/eww/launch_eww bindsym $mod+Shift+q kill bindsym $mod+d exec --no-startup-id rofi -show drun -bindsym $mod+z exec --no-startup-id morc_menu bindsym $mod+Print --release exec --no-startup-id i3-scrot -w bindsym $mod+Ctrl+x --release exec --no-startup-id xkill bindsym Print exec flameshot gui @@ -70,13 +70,12 @@ focus_follows_mouse yes # workspace back and forth (with/without active container) workspace_auto_back_and_forth yes -bindsym $mod+b workspace back_and_forth +#bindsym $mod+b workspace back_and_forth bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth bindsym $mod+q split toggle bindsym $mod+f fullscreen toggle bindsym $mod+w layout tabbed -bindsym $mod+e layout toggle split bindsym $mod+Shift+space floating toggle bindsym $mod+space focus mode_toggle bindsym $mod+Shift+s sticky toggle @@ -131,7 +130,7 @@ bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8 bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9 # resize focused window -bindsym $mod+Shift+h resize shrink width 5 px or 5 pp9t +bindsym $mod+Shift+h resize shrink width 5 px or 5 ppt bindsym $mod+Shift+j resize grow height 5 px or 5 ppt bindsym $mod+Shift+k resize shrink height 5 px or 5 ppt bindsym $mod+Shift+l resize grow width 5 px or 5 ppt @@ -182,16 +181,17 @@ bindsym $mod+Shift+r restart bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" # Set shut down, restart and locking features +# to set a lock screen run betterlockscreen -u path/to/image +exec_always --no-startup-id xss-lock -- betterlockscreen -l blur --display 0 | while read line; do echo "[$(date '+%D %H:%m:%S')] MESSAGE: ${line}" >> ~/.cache/lock_logs.log; done + bindsym $mod+0 mode "$mode_system" -set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown +set $mode_system (l)ock, (e)xit, (s)uspend, (r)eboot, (Shift+s)hutdown mode "$mode_system" { - bindsym l exec --no-startup-id i3exit lock, mode "default" - bindsym s exec --no-startup-id i3exit suspend, mode "default" - bindsym u exec --no-startup-id i3exit switch_user, mode "default" - bindsym e exec --no-startup-id i3exit logout, mode "default" - bindsym h exec --no-startup-id i3exit hibernate, mode "default" - bindsym r exec --no-startup-id i3exit reboot, mode "default" - bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default" + bindsym l exec --no-startup-id loginctl lock-session, mode "default" + bindsym s exec --no-startup-id loginctl lock-session && systemctl suspend, mode "default" + bindsym e exec --no-startup-id i3-msg exit, mode "default" + bindsym r exec --no-startup-id systemctl reboot, mode "default" + bindsym Shift+s exec --no-startup-id systemctl poweroff, mode "default" # exit system mode: "Enter" or "Escape" bindsym Return mode "default" @@ -203,17 +203,19 @@ exec --no-startup-id nitrogen --restore exec --no-startup-id nm-applet exec --no-startup-id xfce4-power-manager exec --no-startup-id clipit -exec --no-startup-id xidlehook --not-when-fullscreen --not-when-audio --timer 600 'blurlock' '' +exec --no-startup-id xidlehook --not-when-fullscreen --not-when-audio --timer 600 'loginctl lock-session' '' exec_always --no-startup-id ff-theme-util exec_always --no-startup-id fix_xcursor exec --no-startup-id volumeicon exec --no-startup-id mpris-proxy exec --no-startup-id pa-applet +exec_always killall -q dunst ; dunst -config ~/.config/dunst/dunstrc exec_always killall -q picom ; picom -b --config $HOME/.config/picom.conf +exec_always killall -q polybar; $HOME/.config/polybar/launch.sh # hide/unhide i3status bar -bindsym $mod+m bar mode toggle +bindsym $mod+b bar mode toggle gaps inner 10 gaps outer -1 @@ -230,24 +232,24 @@ for_window [class="^.*"] border pixel 0 bindsym $mod+Shift+n gaps inner all set 0; gaps outer all set 0 bindsym $mod+n gaps inner all set 7; gaps outer all set -1 -bar { - status_command SCRIPT_DIR=~/.config/i3blocks/scripts i3blocks -c ~/.config/i3blocks/config - position bottom - separator_symbol "│" +#bar { + #status_command SCRIPT_DIR=~/.config/i3blocks/scripts i3blocks -c ~/.config/i3blocks/config + #position bottom + #separator_symbol "│" - tray_output primary - tray_padding 4 + #tray_output primary + #tray_padding 4 - font pango:DejaVu Sans Mono Nerd Font 12 + #font pango:DejaVu Sans Mono Nerd Font 12 - colors { - background $base - statusline $text - separator $rosewater - # border bg text - focused_workspace $pink $pink $base - inactive_workspace $surface0 $surface0 $overlay0 - urgent_workspace $red $red $base - } -} + #colors { + #background $base + #statusline $text + #separator $rosewater + ## border bg text + #focused_workspace $pink $pink $base + #inactive_workspace $surface0 $surface0 $overlay0 + #urgent_workspace $red $red $base + #} +#} diff --git a/common/.config/i3blocks/config b/common/.config/i3blocks/config index cf1c6e5..941daf4 100644 --- a/common/.config/i3blocks/config +++ b/common/.config/i3blocks/config @@ -21,7 +21,7 @@ color=#f4dbd6 [cpu_usage] label= command=$SCRIPT_DIR/cpu_usage/cpu_usage -interval=10 +interval=1 #color=#8bd5ca #T_WARN=50 #T_CRIT=80 @@ -42,14 +42,14 @@ color=#eed49f [baterkos] label= command=$SCRIPT_DIR/battery/battery -interval=10 +interval=3 color=#b7bdf8 [volume] label=󰕾 command=$SCRIPT_DIR/volume/volume #label=VOL -interval=5 +interval=1 signal=10 markup=pango color=#f5bde6 diff --git a/common/.config/picom.conf b/common/.config/picom.conf index 0b7e1eb..5e6180c 100644 --- a/common/.config/picom.conf +++ b/common/.config/picom.conf @@ -24,6 +24,7 @@ rounded-corners-exclude = [ "class_g = 'i3-frame'", "class_g = 'Polybar'", "class_g = 'i3bar'", + "class_g = 'Dunst'", ]; round-borders = 20; @@ -32,6 +33,7 @@ round-borders-exclude = [ "class_g = 'i3-frame'", "class_g = 'Polybar'", "class_g = 'i3bar'", + "class_g = 'Dunst'", ]; ################################# diff --git a/common/.config/polybar/colors.ini b/common/.config/polybar/colors.ini index 1252362..2bbc9ef 100644 --- a/common/.config/polybar/colors.ini +++ b/common/.config/polybar/colors.ini @@ -1,24 +1,40 @@ -[colors] -; background = #1e222a -background = #1A1826 -; foreground = #c8ccd4 -foreground = #C3BAC6 +;------------------------- +; Catppuccin Macchiato Palette +; Maintainer: justTOBBI +;-------------------------- + +[colors] +base = #24273a +mantle = #1e2030 +crust = #181926 + +text = #cad3f5 +subtext0 = #a5adcb +subtext1 = #b8c0e0 + +surface0 = #363a4f +surface1 = #494d64 +surface2 = #5b6078 + +overlay0 = #6e738d +overlay1 = #8087a2 +overlay2 = #939ab7 + + +blue = #8aadf4 +lavender = #b7bdf8 +sapphire = #7dc4e4 +sky = #91d7e3 +teal = #8bd5ca +green = #a6da95 +yellow = #eed49f +peach = #f5a97f +maroon = #ee99a0 +red = #ed8796 +mauve = #c6a0f6 +pink = #f5bde6 +flamingo = #f0c6c6 +rosewater = #f4dbd6 + +transparent = #FF00000 -color0 = #282c34 -color1 = #e06c75 -color2 = #98c379 -color3 = #e5c07b -color4 = #61afef -color5 = #c678dd -color6 = #56b6c2 -color7 = #abb2bf -color8 = #545862 -color9 = #e06c75 -color10 = #98c379 -color11 = #e5c07b -color12 = #61afef -color13 = #c678dd -color14 = #56b6c2 -color15 = #c8ccd4 -dark-light = #272A2B -active-light = #313435 diff --git a/common/.config/polybar/fonts.ini b/common/.config/polybar/fonts.ini index cbb794f..1cd35bd 100644 --- a/common/.config/polybar/fonts.ini +++ b/common/.config/polybar/fonts.ini @@ -1,10 +1,4 @@ -# font-0 = CaskaydiaCove Nerd Font:style=Regular:pixelsize=11:antialias=true;2.5 -font-0 = DejaVu Sans Mono Nerd Font:style=Bold:pixelsize=14;3 -font-1 = DejaVu Sans Mono Nerd Font:size=14;4 -font-2 = Material Design Icons:style=Regular:size=12;3 -font-6 = unifont:fontformat=truetype:size=11;3 -font-4 = DejaVu Sans Mono Nerd Font:size=14 -font-5 = DejaVu Sans Mono:size=11 -font-3 = Weather Icons:size=12;1 -font-7 = Material Icons:size=12;0 -# font-4 = Material Design Icons:style=Regular:pixelsize=11:antialias=true;2.5 +font-0 = "DejaVuSM Nerd Font:style=Regular:size=14;3" +font-1 = "DejaVuSM Nerd Font:style=Bold:size=14;3" +font-2 = "DejaVuSM Nerd Font:style=Oblique:size=14;3" +font-3 = "DejaVuSM Nerd Font:style=Bold Oblique:size=14;5" diff --git a/common/.config/polybar/main-bar.ini b/common/.config/polybar/main-bar.ini index 252f0d3..6cadf9a 100644 --- a/common/.config/polybar/main-bar.ini +++ b/common/.config/polybar/main-bar.ini @@ -7,8 +7,8 @@ width = 100% height = 30 bottom = true -background = ${colors.background} -foreground = ${colors.foreground} +background = ${colors.base} +foreground = ${colors.text} padding-right = 1 padding-left = 1 @@ -20,9 +20,9 @@ border-top-color = ${colors.background} border-bottom-color = ${colors.background} -modules-left = round-left i3 round-right empty-space spotify -modules-center = round-left time round-right -modules-right = empty-space round-left network round-right empty-space round-left backlight colored-empty-space audio round-right empty-space round-left cpu temperature colored-empty-space memory round-right empty-space round-left battery round-right +modules-left = i3 empty-space title +modules-center = time +modules-right = empty-space spotify empty-space wired-network network speedtest empty-space backlight colored-empty-space audio empty-space cpu temperature colored-empty-space memory empty-space battery cursor-click = pointer cursor-scroll = ns-resize diff --git a/common/.config/polybar/modules.ini b/common/.config/polybar/modules.ini index 0152819..b457ae4 100644 --- a/common/.config/polybar/modules.ini +++ b/common/.config/polybar/modules.ini @@ -4,10 +4,26 @@ pin-workspaces = true enable-click = true show-urgent = true -format-background = #1E1E2E +format = " " -label-active-foreground = ${colors.foreground} -label-urgent-foreground = ${colors.foreground} +label-focused-background = ${colors.pink} +label-focused-foreground = ${colors.base} +label-mode-background = ${colors.pink} +label-mode-foreground = ${colors.base} + +label-urgent-foreground = ${colors.red} + +# ======================================= + +[module/title] +type = internal/xwindow +format =