Compare commits

...

6 commits

Author SHA1 Message Date
Gu://em_
6e6f820037 Removed the not implemented wifi menu files 2026-04-27 20:20:02 +02:00
Gu://em_
1984fc896c Updated waybar and added the new Boussole config (default) 2026-04-27 20:19:00 +02:00
Gu://em_
83ab1b1d6b Fully updated the Hyprland config 2026-04-27 20:12:34 +02:00
Gu://em_
3470ffdfd7 Added configs for new packages, removed old ones and updated README 2026-04-27 19:18:06 +02:00
Gu://em_
5bb231dcee Fixed display manager enable command 2026-04-27 15:18:26 +02:00
Gu://em_
8909213781 Updated packages and sorted them 2026-04-27 15:15:20 +02:00
53 changed files with 2647 additions and 1159 deletions

View file

@ -4,7 +4,7 @@ This project is an automated installer for the Atlas Desktop.
## Disclaimer
### ⚠ This is still a WIP project. Use at your own risk.
### ⚠ Use at your own risk.
Some platforms may not yet be supported such as Nvidia graphic cards for which you'll have to install all the drivers yourself. Sadly I don't have any equipment to test that out.
@ -26,18 +26,27 @@ Very simple, clone the project (or download it directly from the web interface)
```sh=
git clone https://forge.oblic-parallels.fr/guillm/atlas-install
```
Make `setup.sh` executable
```sh=
chmod u+x setup.sh
```
And run it
And run `setup.sh`
```sh=
./setup.sh
```
That said I suggest you to give a look to the packages that will be installed on your system as it's important to know how things will work or to disable some things you wouldn't necessarely want.
Then just follow the instructions and you should be good to go !
If you encounter any error or bug, don't hesitate to open an issue on this repo.
## Configuration
I suggest you to give a look to the packages that will be installed on your system as it's important to know how things will work or to disable some things you wouldn't necessarely want.
I particularly think of helix which is used as the default text editor but may not suit some people needs.
Note that the default keyboard layout is QWERTY (us-fr). You can switch with the AZERTY layout by using `Mod+Ctrl+Space`. That said, the default layout already has french accents if you need them.
If you need to modify the layout, go to `~/.config/hypr/config/default/kb_layouts`.
### Defaults
I'm working on a system to easily change the default programs. I don't know yet if it will result into anything but it's worth trying.
## Future improvements
- Nvidia cards handling
- Cleaner way to enable/disable some packages / configuratuions
- Cleaner way to enable/disable some packages / configuratuions

View file

@ -1,72 +0,0 @@
[General]
hotkey=Alt+Space
prioritizePerfectMatch=true
showTray=false
telemetry=false
[albert]
global_handler_enabled=false
trigger=albert
[applications]
enabled=true
fuzzy=true
terminal=kitty
use_generic_name=false
use_keywords=true
[caffeine]
enabled=false
[calculator_qalculate]
enabled=true
[clipboard]
enabled=true
persistent=true
[files]
enabled=false
paths=@Invalid()
[hash]
enabled=true
trigger=#
[mpris]
enabled=true
trigger=mp
[path]
enabled=true
[snippets]
enabled=false
[ssh]
enabled=true
[system]
command_lock=hyprlock
command_poweroff=poweroff
command_reboot=reboot
enabled=true
trigger=sys
[triggers]
trigger=?
[widgetsboxmodel]
alwaysOnTop=true
clearOnHide=false
clientShadow=false
darkTheme=Seventy Eight
displayScrollbar=false
followCursor=true
hideOnFocusLoss=true
historySearch=true
itemCount=5
lightTheme=Seventy Eight
quitOnClose=false
showCentered=true
systemShadow=true

View file

@ -1,108 +0,0 @@
/*
* original author: Manuel Schneider <https://github.com/ManuelSchneid3r>
* modified by : Gu://em_
*
* Check http://doc.qt.io/qt-5/stylesheet-syntax.html especially the subtopics:
* The Style Sheet Syntax (http://doc.qt.io/qt-5/stylesheet-syntax.html)
* Qt Style Sheets Reference (http://doc.qt.io/qt-5/stylesheet-reference.html)
*/
* {
border: none;
color: #98C1D9;
background-color: #293241;
}
#frame {
background-color: none;
border: none;
max-width:640px;
min-width:640px;
padding: 10px; /* to have a drag handle */
}
#inputLine {
border-radius: 8px;
border: 1px solid #4C566A;
color: #EE6C4D;
font-size: 26px;
padding: 8px;
selection-background-color: #EE6C4D;
selection-color: #E0FBFC;
}
#settingsButton {
background-color: none;
color: #4C566A;
max-height: 13px;
max-width: 13px;
min-height: 13px;
min-width: 13px;
padding: 16px;
}
QListView {
border-radius: 8px;
border: 1px solid #4C566A;
color: #E0FBFC;
margin-top: 4px;
selection-background-color: #3D5A80;
selection-color: #E0FBFC;
}
QListView::item {
border-radius: 6px;
padding: 4px;
}
QListView::item:selected {
background-color: #3D5A80;
}
QListView#resultsList {
font-size: 20px;
icon-size: 34px;
padding: 4px 8px 4px 8px;
}
QListView#resultsList::item {
margin: 4px 0px 4px 0px;
height: 44px;
}
QListView#actionList {
font-size: 16px;
padding: 6px 8px 6px 8px;
}
QListView#actionList::item {
margin: 2px 0px 2px 0px;
}
QListView QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical,
QListView QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical,
QListView QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
background: transparent;
border: 0px;
height: 0px;
width: 0px;
}
QListView QScrollBar:vertical {
background: transparent;
margin: 8px 0px 8px 0px;
width: 2px;
}
QListView QScrollBar::handle:vertical {
background: #4C566A;
min-height: 24px;
}

View file

@ -0,0 +1,18 @@
/* Swaync */
@define-color active #e64e4e;
@define-color background_dark #1c2128;
@define-color background_light #22272e;
@define-color background_transparent alpha(#18191c, 0.7);
@define-color foreground #e4e8ed;
@define-color border #333940;
@define-color alert #ea4545;
/* Waybar */
@define-color foreground #e4e8ed;
@define-color background #18191c;
/* @define-color accentColor #b6c8d3; */
@define-color accentColor #ec775c;
@define-color charging #6bc46d;

View file

@ -0,0 +1,3 @@
#$active_color = rgba(f55c20ff)
$active_color = rgba(de3c3cff)
$inactive_color = rgba(595959aa)

View file

@ -0,0 +1,62 @@
# vim:ft=kitty
## name: 78
## author: Gu://em_ (forked from Github Dark Dimmed)
## license: MIT
#: The basic colors
foreground #adbac7
background #14171F
#background #111317
selection_foreground #EE6C4D
selection_background #3D5A80
#: Cursor colors
cursor #adbac7
#: Tab bar colors
tab_bar_background #22272e
active_tab_foreground #adbac7
active_tab_background #ec775c
inactive_tab_foreground #adbac7
inactive_tab_background #1C2128
#: The basic 16 colors
#: black
color0 #545d68
color8 #636e7b
#: red
color1 #f47067
color9 #ff938a
#: green
color2 #57ab5a
color10 #6bc46d
#: yellow
color3 #c69026
color11 #daaa3f
#: blue
color4 #539bf5
color12 #6cb6ff
#: magenta
color5 #b083f0
color13 #dcbdfb
#: cyan
color6 #39c5cf
color14 #56d4dd
#: white
color7 #909dab
color15 #cdd9e5

View file

@ -1,66 +0,0 @@
# -*- conf -*-
# For documentation on these options, see `man fnott.ini`
# Global values
# output=<undefined>#
min-width=200
# max-width=0
# max-height=0
# stacking-order=bottom-up
anchor=top-right
edge-margin-vertical=10
edge-margin-horizontal=10
notification-margin=10
icon-theme=Papirus
# max-icon-size=32
# selection-helper=dmenu
# selection-helper-uses-null-separator=no
# play-sound=aplay ${filename}
# Default values, may be overridden in 'urgency' specific sections
layer=top
background=293241FF
border-color=EE6C4DFF
border-radius=0
border-size=2
padding-vertical=20
padding-horizontal=20
dpi-aware=yes
title-font=monospace
title-color=ffffffff
title-format=<i>%a%A</i>
summary-font=monospace
summary-color=ffffffff
summary-format=<b>%s</b>\n
body-font=monospace
body-color=ffffffff
body-format=%b
progress-bar-height=20
progress-bar-color=ffffffff
# sound-file=
# icon=
# Timeout values are in seconds. 0 to disable
max-timeout=0
default-timeout=0
idle-timeout=0
# [low]
# background=2b2b2bff
# title-color=888888ff
# summary-color=888888ff
# body-color=888888ff
# [normal]
# [critical]
# background=6c3333ff

View file

@ -0,0 +1,8 @@
[main]
shell=zsh
font=JetBrains Mono Nerd Font:size=14:style=Light
include=~/.config/foot/github-dark.ini
[cursor]
style=beam
blink=true

View file

@ -0,0 +1,41 @@
# -*- conf -*-
# Github Dark
# By Gu://em_
[colors-dark]
# alpha = 0.9
background= 0d1117
foreground= c9d1d9
#: black
regular0= 484f58
bright0= 6e7681
#: red
regular1= ff7b72
bright1= ffa198
#: green
regular2= 3fb950
bright2= 56d364
#: yellow
regular3= d29922
bright3= e3b341
#: blue
regular4= 58a6ff
bright4= 79c0ff
#: magenta
regular5= bc8cff
bright5= d2a8ff
#: cyan
regular6= 39c5cf
bright6= 56d4dd
#: white
regular7= b1bac4
bright7= ffffff

View file

@ -0,0 +1,5 @@
theme = "github_dark"
# theme = "adwaita-light"
[editor]
line-number = "relative"

View file

@ -3,14 +3,12 @@
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
$active_color = rgba(98C1D9FF)
$inactive_color = rgba(595959aa)
source = ~/.config/hypr/config/colors.conf
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 1
gaps_out = 0
gaps_out = 1
border_size = 1
@ -46,15 +44,52 @@ decoration {
blur {
enabled = true
size = 6
passes = 3
passes = 4
vibrancy = 0.1696
}
}
# Apply blur to waybar
layerrule = blur,waybar
# Layer rules
layerrule {
name = side-panel
blur = on
ignore_alpha = 0.2
animation = slide right
dim_around = on
match:namespace = ^(swaync-control-center)$
}
layerrule {
name = launcher
blur = off
animation = popin 90%
match:namespace = ^(rofi)$
}
layerrule {
name = status-bar
blur = off
animation = slide up
match:namespace = ^(waybar)$
}
layerrule {
name = screenshot-selection
blur = off
animation = fade
match:namespace = ^(selection)$
}
## Old
# layerrule = blur, swaync-control-center
# layerrule = blur, swaync-notification-window
# layerrule = ignorezero, swaync-control-center
# layerrule = ignorezero, swaync-notification-window
# layerrule = ignorealpha 0.5, swaync-control-center
# layerrule = ignorealpha 0.5, swaync-notification-window
# https://wiki.hyprland.org/Configuring/Variables/#animations
@ -74,7 +109,7 @@ animations {
# Animations
animation = global, 1, 10, default
animation = border, 1, 5.39, easeOutQuint
animation = border, 1, 4, easeOutQuint
animation = windows, 1, 3.79, easeOutQuint
animation = windowsIn, 1, 3.1, easeOutQuint, popin 87%
@ -85,17 +120,17 @@ animations {
animation = fade, 1, 3.03, quick
animation = layers, 1, 3.81, easeOutQuint
animation = layersIn, 1, 4, easeOutQuint, fade
animation = layersOut, 1, 1.5, linear, fade
animation = fadeLayersIn, 1, 1.79, almostLinear
animation = fadeLayersOut, 1, 1.39, almostLinear
animation = layersIn, 1, 3, easeOutQuint, popin 85%
animation = layersOut, 1, 3, linear, popin
# animation = fadeLayersIn, 1, 1.79, almostLinear
# animation = fadeLayersOut, 1, 1.39, almostLinear
animation = workspaces, 1, 1.94, almostLinear, fade
animation = workspaces, 1, 2.2 , easeOutQuint, slidefadevert
animation = workspacesIn, 1, 3, easeOutQuint, slide
animation = workspacesOut, 1, 3, easeOutQuint, slide
#animation = workspacesIn, 1, 3, easeOutQuint, slidefade
#animation = workspacesOut, 1, 5, easeOutQuint, slidefade
# animation = workspacesIn, 1, 3, easeOutQuint, slidefade
# animation = workspacesOut, 1, 5, easeOutQuint, slidefade
}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
@ -135,32 +170,107 @@ misc {
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
windowrule {
name = suppress-maximize-events
suppress_event = maximize
match:class = .*
}
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
windowrule {
name = fix-xwayland-drags
match:class = ^$
match:title = ^$
match:xwayland = true
match:float = true
match:fullscreen = false
match:pin = false
no_focus = true
}
# Albert
windowrule=noborder,class:^(albert)$
windowrule=noblur,class:^(albert)$
windowrule=noshadow,class:^(albert)$
windowrule=float,class:^(albert)$
windowrule=stayfocused,class:^(albert)$
windowrule=nodim,class:^(albert)$
windowrule {
name = albert
border_size = 0
no_blur = on
no_shadow = on
float = on
stay_focused = on
no_dim = on
match:class = ^(albert)$
}
# Prism Launcher
windowrule=pseudo, class:(org.prismlauncher.PrismLauncher)
windowrule=size 65% 70%, class:(org.prismlauncher.PrismLauncher), title:^(Prism Launcher .*)$
windowrule {
name = prismlauncher-all
pseudo = on
match:class = (org.prismlauncher.PrismLauncher)
}
windowrule {
name = prismlauncher-main
size = (monitor_w*0.65) (monitor_h*0.7)
match:class = (org.prismlauncher.PrismLauncher)
match:title = ^(Prism Launcher .*)$
}
# Nautilus
windowrule {
name = nautilus-main
pseudo = on
size = (monitor_w*0.65) (monitor_h*0.7)
match:class = (org.gnome.Nautilus) # initialTitle:^(Loading…)$
}
# GTK file picker
windowrule {
name = gtk-file-picker
float = on
size = (monitor_w*0.65) (monitor_h*0.7)
match:class = (xdg-desktop-portal-gtk)
}
# Vivado
## Loading screen
windowrule {
name = vivado-loading-screen
float = on
center = on
match:class = (ui-PlanAhead)
}
windowrule {
name = vivado-loading-screen-2
size = 397 295
match:class = (ui-PlanAhead) title:^(win0)$
}
## Main window
windowrule {
name = vivado-main
tile = on
match:class = (Vivado)
}
# Kdenlive
windowrule {
name = kdenlive-all
pseudo = on
match:class = (org.kde.kdenlive)
}
windowrule {
name = kdenlive-welcome
size = (512) (544)
match:class = (org.kde.kdenlive) # initialTitle:^(Kdenlive)$
}
# TODO Automatically fullscreen single apps
# - Seems impossible for now (try mixing with workspace rules)
# Default size for floating windows
## TODO
#windowrulev2 = size 100 100,floating:1
# Increase gaps for single apps
workspace=w[t1], gapsout:2
## Usless since I changed the default gap but may be useful if you decide to reset it to 0
#workspace=w[t1], gapsout:2

View file

@ -0,0 +1 @@
../../../colors/hyprland.conf

View file

@ -5,10 +5,10 @@
# See https://wiki.hyprland.org/Configuring/Keywords/
# Set programs that you use
$terminal = kitty
$fileManager = cosmic-files
$menu = albert toggle
$notificationsManager = fnott
$terminal = foot
$fileManager = nautilus
$menu = rofi -show drun
$notificationManager = swaync-client -t
#################

View file

@ -18,9 +18,7 @@ input {
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = true
}
gesture = 3, horizontal, workspace
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
@ -46,14 +44,17 @@ bind = $mainMod, D, exec, $menu # Legacy menu shortcut
bind = $mainMod, L, exec, hyprlock # Lockscreen
bind = $mainMod, B, exec, ~/.config/hypr/scripts/toggle-waybar.sh # Toggle sidebar
bind = $mainMod SHIFT, R, exec, ~/.config/hypr/scripts/reload.sh # Reload desktop
bind = $mainMod, F11, exec, ~/.config/hypr/scripts/gamemode.sh # Gamemode
bind = $mainMod, F11, exec, ~/.config/hypr/scripts/game-mode.sh # Gamemode
bind = $mainMod, F10, exec, ~/.config/hypr/scripts/sharp-mode.sh # Sharp mode
bind = $mainMod SHIFT, M, exit, # Exit desktop session
# Shortcuts
bind = $mainMod, RETURN, exec, $terminal
bind = $mainMod, X, exec, $terminal # Absolutely not because I dislocated my arm
bind = $mainMod, SPACE, exec, $menu
bind = $mainMod, E, exec, $fileManager
bindel = , XF86Launch1, exec, kitty vim ~/.config/hypr/config
bind = $mainMod, A, exec, $notificationManager
bindel = , XF86Launch1, exec, $terminal hx ~/.config/hypr/config # Replace by default editor
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
@ -61,6 +62,12 @@ bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Move windows with mainMod + shift + arrow keys
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d
# Layout
bind = $mainMod, F, fullscreen,
bind = $mainMod, V, togglesplit, # Horizontal/vertical split
@ -134,6 +141,10 @@ bindl = , XF86AudioPrev, exec, playerctl previous
## Screenshot
bind = , Print, exec, ~/.config/hypr/scripts/screenshot.sh
bind = SHIFT, Print, exec, ~/.config/hypr/scripts/screenshot.sh --fullscreen
# Color picker
bind = $mainMod SHIFT, C, exec, hyprpicker -a
## Touchpad toggle
### On galaxy books, pressing the disable touchpad key also triggers SUPER and
@ -143,4 +154,10 @@ bind = SUPER CONTROL, XF86TouchpadToggle, exec, ~/.config/hypr/scripts/toggle-to
## Keyboard layout toggle
### Only works between AZERTY and QWERTY because of differences in the numbers row
### that prevent using the default way provided by hyprland
bind = $mainMod CONTROL, SPACE, exec, ~/.config/hypr/scripts/change-kb-layout.sh
bind = $mainMod CONTROL, SPACE, exec, ~/.config/hypr/scripts/change-kb-layout.sh
# Lock laptop on lid close
bindl=,switch:off:Lid Switch, exec, hyprlock --immediate
## Overview plugin
#bind = $mainMod, TAB, overview:toggle, toggle

View file

@ -1,8 +1,8 @@
## Overrides inputs for QWERTY layout
input {
kb_layout = us
kb_variant =
kb_layout = fr
kb_variant = us
kb_model =
kb_options =
kb_rules =
@ -30,4 +30,4 @@ bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod SHIFT, 0, movetoworkspace, 10

View file

@ -10,6 +10,3 @@ plugin {
gapsOut = 20
}
}
# Toggle overview (Read plugins section in wiki before decommenting)
# bind = $mainMod, TAB, overview:toggle, toggle

View file

@ -0,0 +1,21 @@
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
# All screens
monitorv2 {
output =
mode = preferred
position = auto-up
scale = auto
}
# Laptop screen
monitorv2 {
output = eDP-1
mode = preferred
position = auto-down
scale = 1
}

View file

@ -0,0 +1,23 @@
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
# Laptop screen
monitorv2 {
output = eDP-1 # <- You may need to change that
mode = preferred
position = 0x0
scale = 1
}
# Other monitors (mirror laptop screen)
monitorv2 {
output = *
mode = preferred
position = auto
scale = 1
mirror = eDP-1 # <- Also don't forget this one
}

View file

@ -1,12 +1,14 @@
# BACKGROUND
background {
monitor =
path = ~/.config/hypr/images/lockscreen.jpg
blur_passes = 0
#contrast = 0.8916
#brightness = 0.8172
#vibrancy = 0.1696
#vibrancy_darkness = 0.0
path = ~/.config/hypr/images/wallpaper.jpg
blur_passes = 3
blur_size = 4
noise = 0.0
contrast = 0.7
brightness = 0.8172
vibrancy = 0.2
vibrancy_darkness = 0.0
}
# GENERAL
@ -26,12 +28,12 @@ input-field {
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = rgba(200, 200, 200, 1)
outer_color = rgba(200, 200, 200, 0.4)
inner_color = rgba(100, 114, 125, 1)
font_color = rgb(200, 200, 200)
fade_on_empty = false
font_family = DejaVu Sans
placeholder_text = <i><span foreground="##ffffff99">Enter Pass</span></i>
placeholder_text = <i><span foreground="##ffffff99">Enter password</span></i>
hide_input = false
position = 0, -350
halign = center
@ -41,7 +43,6 @@ input-field {
# Time
label {
monitor =
#text = cmd[update:1000] echo "<span>$(date +"%H:%M")</span>"
text = $TIME
color = rgba(216, 222, 233, 1)
font_size = 130
@ -49,9 +50,6 @@ label {
position = 0, 280
halign = center
valign = center
# TODO make shadowing work
#shadow_passes = 10
#shadow_size = 3
}
# Day-Month-Date
@ -83,16 +81,40 @@ label {
#}
# USER
#label {
# monitor =
# text = Hi, $USER
# color = rgba(216, 222, 233, 0.70)
# font_size = 20
# font_family = DejaVu Sans
# position = 0, -200
# halign = center
# valign = center
#}
label {
monitor =
text = $USER
color = rgba(216, 222, 233, 0.70)
font_size = 20
font_family = JetbrainsMonoNL NF
position = 0, -200
halign = center
valign = center
}
# Timer
label {
monitor =
text = cmd[update:0] echo "Locked since $TIME"
color = rgba(216, 222, 233, 0.40)
font_size = 20
font_family = JetbrainsMonoNL NF
position = 0, -250
halign = center
valign = center
}
# # Failed login attempts
# label {
# monitor =
# text = cmd[update:1000] echo "$ATTEMPTS Failed attempts"
# color = rgba(216, 222, 233, 0.40)
# font_size = 20
# font_family = JetbrainsMonoNL NF
# position = 0, -250
# halign = center
# valign = center
# }
# CURRENT SONG
label {
@ -100,7 +122,7 @@ label {
text = cmd[update:1000] echo "$(~/.config/hypr/scripts/songdetails.sh)"
color = rgba(255, 255, 255, 0.7)
font_size = 16
font_family = DejaVu Sans
font_family = JetbrainsMonoNL NF
position = 0, 20
halign = center
valign = bottom

View file

@ -1,2 +1,6 @@
preload = ~/.config/hypr/images/wallpaper.png
wallpaper = , ~/.config/hypr/images/wallpaper.png
wallpaper {
monitor =
path = ~/.config/hypr/images/wallpaper.jpg
}
splash = false

View file

@ -0,0 +1,12 @@
max-gamma = 150
profile {
time = 8:00
identity = true
}
profile {
time = 21:00
temperature = 5500
gamma = 0.8
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 887 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 MiB

View file

@ -5,8 +5,8 @@
# If you want to add your own applications you may rather want to use exec-once in the environment.conf file
hyprpaper &
hyprpm reload -nn &
albert &
# mako &
# Enable this if you want to use plugins
# hyprpm reload &
swaync &
systemctl --user start hyprpolkitagent &
~/.config/hypr/scripts/restore-waybar.sh

View file

@ -21,13 +21,12 @@ en_to_fr() {
}
if ! [ -f "${status_file}" ]; then
hyprctl notify 3 3000 0 "Status file missing"
hyprctl notify 2 6000 0 "Use Mod + Ctrl + Space to change keyboard layout"
en_to_fr
fr_to_en
else
if [ $(cat "${status_file}") = "fr" ]; then
fr_to_en
elif [ $(cat "${status_file}") = "en" ]; then
en_to_fr
fi
fi
fi

View file

@ -1,6 +1,6 @@
killall albert
killall hyprpaper
killall waybar
killall swaync
hyprctl reload

View file

@ -1 +1,13 @@
grim -g "$(slurp)" $HOME/Pictures/Screenshots/$(date +'%F_%T.png') && hyprctl notify 1 2000 0 Screenshot saved!
save_path=$HOME/Pictures/Screenshots/$(date +'%F_%T.png')
if [ $# -eq 0 ]; then
grim -g "$(slurp)" $save_path && hyprctl notify 1 2000 0 "Screenshot saved!"
elif [ $# -eq 1 ]; then
if [[ $1 == "--fullscreen" ]]; then
grim $save_path && hyprctl notify 1 2000 0 Screenshot saved!
fi
fi
exit 0

View file

@ -0,0 +1,21 @@
#!/usr/bin/env sh
# Disables animations accros the desktop (as well as some other tweaks)
# Similar to game mode but with the goal to enhance productivity
# From Hyprland documentation - https://wiki.hyprland.org/0.41.2/Configuring/Uncommon-tips--tricks/#toggle-animationsbluretc-hotkey
HYPRSHARPMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}')
if [ "$HYPRSHARPMODE" = 1 ] ; then
hyprctl --batch "\
keyword animations:enabled 0;\
keyword general:gaps_in 0;\
keyword general:gaps_out 0;\
keyword general:border_size 1;\
keyword decoration:rounding 0"
hyprctl notify 1 2000 0 "Enabled Sharp mode"
exit
fi
hyprctl reload
# ~/.config/hypr/scripts/restore-waybar.sh
hyprctl notify 1 2000 0 "Disabled Sharp mode"

View file

@ -1 +1 @@
fr
en

View file

@ -0,0 +1,17 @@
@theme "~/.local/share/rofi/themes/boussole.rasi"
configuration {
modi: "drun,run";
display-drun: "Applications";
display-run: "Run";
drun-display-format: "{icon} {name}";
sort: true;
sorting-method: "fzf";
/* Icons */
show-icons: true;
icon-theme: "Papirus";
}

View file

@ -0,0 +1,4 @@
@theme "~/.local/share/rofi/themes/boussole.rasi"
configuration {
terminal: "foot";
}

View file

@ -0,0 +1 @@
../colors/colors.css

View file

@ -0,0 +1,113 @@
{
"$schema": "/etc/xdg/swaync/configSchema.json",
"positionX": "right",
"positionY": "top",
"layer": "overlay",
"control-center-layer": "top",
"layer-shell": true,
"cssPriority": "application",
"control-center-width": 350,
"control-center-margin-top": 2,
"control-center-margin-bottom": 2,
"control-center-margin-right": 2,
"control-center-margin-left": 2,
"notification-2fa-action": true,
"notification-inline-replies": true,
"notification-window-width": 350,
"notification-icon-size": 60,
"notification-body-image-height": 180,
"notification-body-image-width": 180,
"timeout": 4,
"timeout-low": 2,
"timeout-critical": 0,
"fit-to-screen": true,
"keyboard-shortcuts": true,
"image-visibility": "when available",
"transition-time": 200,
"hide-on-clear": false,
"hide-on-action": true,
"script-fail-notify": true,
"widgets": [
"title",
"notifications",
"mpris",
"volume",
"backlight",
"buttons-grid"
],
"widget-config": {
"title": {
"text": "Notification Center",
"clear-all-button": true,
"button-text": "󰆴"
},
"label": {
"max-lines":1,
"text": "Notification Center!"
},
"mpris": {
"image-size": 80,
"image-radius": 0
},
"volume": {
"label": "󰕾 "
},
"backlight": {
"label": "󰃟 "
},
"buttons-grid": {
"actions": [
{
"label": "󰝟",
"command": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
"type": "toggle"
},
{
"label": "󰍭",
"command": "pactl set-source-mute @DEFAULT_SOURCE@ toggle",
"type": "toggle"
},
{
"label": "",
"command": "rofi-wifi"
},
{
"label": "",
"command": "rofi-bluetooth"
},
{
"label":"󰤄",
"command": "swaync-client -d",
"type":"toggle"
},
{
"label": "",
"command": "foot hx ~/.config/hypr"
},
{
"label": "",
"command": "foot btop"
},
{
"label": "",
"command": "hyprlock"
},
{
"label":"",
"command": "reboot"
},
{
"label":"",
"command": "shutdown now"
}
]
}
}
}

View file

@ -0,0 +1,486 @@
@import url('colors.css');
@define-color control-background alpha(@background_dark, 0.8);
* {
all: unset;
font-family: JetBrainsMono Nerd Font Propo;
transition: 0.1s;
font-size: 1.3rem;
}
/*--------------- Notifications ---------------*/
.floating-notifications.background .notification-row {
padding: 0.5rem;
}
.floating-notifications.background .notification-row .notification-background {
border-radius: 0.3rem;
background-color: @background_light;
color: @foreground;
border: 1px solid @border;
}
.floating-notifications.background
.notification-row
.notification-background
.notification {
padding: 0.6rem;
border-radius: 0.2rem;
}
.floating-notifications.background
.notification-row
.notification-background
.notification.critical {
border: 1px solid @alert;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
.notification-content
.summary {
margin: 0.2rem;
color: @foreground;
font-weight: bold;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
.notification-content
.body {
margin: 0.2rem;
color: @foreground;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> * {
min-height: 3rem;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action {
border-radius: 0.2rem;
color: @foreground;
background-color: @background_dark;
border: 1px solid @border;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:hover {
background-color: #26233a;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:active {
background-color: @border;
}
.floating-notifications.background
.notification-row
.notification-background
.close-button {
margin: 0.2rem;
padding: 0.25rem;
border-radius: 0.2rem;
color: @foreground;
background-color: alpha(@alert, 0);
}
.floating-notifications.background
.notification-row
.notification-background
.close-button:hover {
/* color: #191724; */
background-color: @alert;
}
.floating-notifications.background
.notification-row
.notification-background
.close-button:active {
background-color: @foreground;
}
/*--------------- Control center ---------------*/
.control-center {
border-radius: .4rem;
background-color: @background_transparent;
color: @foreground;
padding: 1.2rem;
border: 1px solid @border;
}
.control-center .widget-title {
color: @foreground;
font-weight: bold;
}
.control-center .widget-title button {
border-radius: 2rem;
color: @foreground;
background-color: @border;
border: 1px solid @border;
padding: .2rem 1.5rem;
}
.control-center .widget-title button:hover {
background-color: @alert;
}
.control-center .widget-title button:active {
background-color: @border;
}
.control-center .notification-row .notification-background {
border-radius: 0.5rem;
margin: 0.5rem;
background-color: @background_light;
color: @foreground;
border: 1px solid @border;
}
.control-center .notification-row .notification-background .notification {
padding: 0.7rem;
border-radius: 0.2rem;
}
.control-center
.notification-row
.notification-background
.notification.critical {
border: 1px solid @alert;
}
.control-center
.notification-row
.notification-background
.notification
.notification-content {
color: @foreground;
}
.control-center
.notification-row
.notification-background
.notification
.notification-content
.summary {
margin: 0.2rem;
color: @foreground;
font-weight: bold;
}
.control-center
.notification-row
.notification-background
.notification
.notification-content
.body {
margin: 0.2rem;
color: @foreground;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> * {
min-height: 3rem;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action {
border-radius: 0.2rem;
color: @foreground;
background-color: #1f1d2e;
border: 1px solid @border;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:hover {
background-color: @background_light;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:active {
background-color: @border;
}
.control-center .notification-row .notification-background .close-button {
margin: 0.5rem;
padding: 0.25rem;
border-radius: 0.2rem;
color: @foreground;
background-color: alpha(@alert, 0);
}
.control-center .notification-row .notification-background .close-button:hover {
background-color: @alert;
}
.control-center
.notification-row
.notification-background
.close-button:active {
background-color: @foreground;
}
progressbar,
progress,
trough {
border-radius: 0.2rem;
}
.notification.critical progress {
background-color: @alert;
}
.notification.low progress,
.notification.normal progress {
background-color: #9ccfd8;
}
trough {
background-color: #1f1d2e;
}
.control-center trough {
background-color: @border;
}
.control-center-dnd {
margin: 1rem 0;
border-radius: 0.2rem;
}
.control-center-dnd slider {
background: #26233a;
border-radius: 0.2rem;
}
.widget-dnd {
color: #908caa;
}
.widget-dnd > switch {
border-radius: 0.2rem;
background: #26233a;
border: 1px solid @border;
}
.widget-dnd > switch:checked slider {
background: #31748f;
}
.widget-dnd > switch slider {
background: @border;
border-radius: 0.2rem;
margin: 0.25rem;
}
/*--------------- Media player ---------------*/
.widget-mpris {
}
.widget-mpris .widget-mpris-player {
padding: 16px;
margin: 0.5rem;
background-color: @mpris-album-art-overlay;
border-radius: 0.7rem;
}
.widget-mpris .widget-mpris-player button:hover {
all: unset;
background: @bg-hover;
text-shadow: none;
border-radius: 0.5rem;
border: none;
padding: 5px;
margin: 5px;
transition: all 0.2s ease;
}
.widget-mpris .widget-mpris-player button {
color:@text;
text-shadow: none;
border-radius: 2rem;
border: none;
padding: 5px;
margin: 5px;
transition: all 0.2s ease;
}
.widget-mpris .widget-mpris-player button:not(.selected) {
background: transparent;
border: 2px solid transparent;
}
.widget-mpris .widget-mpris-player button:hover {
border: 2px solid transparent;
}
.widget-mpris .widget-mpris-player .widget-mpris-album-art {
border-radius: 0.5rem;
box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5);
}
.widget-mpris .widget-mpris-player .widget-mpris-title {
font-weight: bold;
font-size: 1.25rem;
}
.widget-mpris .widget-mpris-player .widget-mpris-subtitle {
font-size: 1.1rem;
}
.widget-mpris .widget-mpris-player > box > button:hover {
background-color: @mpris-button-hover;
}
/*--------------- Sliders ---------------*/
.widget-volume {
background-color: transparent;
padding: 8px;
/* margin: 8px; */
margin-bottom: 0.5rem;
border-radius: 12px;
}
.widget-backlight {
background-color: transparent;
padding: 8px;
/* margin: 8px; */
margin-bottom: 1.5rem;
border-radius: 12px;
}
trough {
border-radius: 20px;
background: transparent;
}
trough highlight {
padding: 5px;
background: @active;
border-radius: 20px;
transition: all .2s ease;
}
trough highlight:hover {
padding: 5px;
background: @active;
border-radius: 20px;
transition: all .2s ease;
}
trough slider {
background: transparent;
}
trough slider:hover {
background: transparent;
}
/*--------------- Buttons grid ---------------*/
.widget-buttons-grid {
padding-left: 0.2rem;
padding-right: 0.2rem;
padding-bottom: 0.2rem;
/* margin: 1rem; */
border-radius: 0.2rem;
background:transparent;
}
.widget-buttons-grid>flowbox>flowboxchild>button label {
font-size: 20px;
color: @foreground;
transition: all .2s ease;
}
.widget-buttons-grid>flowbox>flowboxchild>button:hover label {
font-size: 20px;
color: @text;
transition: all .2s ease;
}
.widget-buttons-grid > flowbox > flowboxchild > button {
background: alpha(@border, 0.5);
border-radius: 0.2rem;
padding: 0.7rem 2rem;
margin: 0.2rem;
text-shadow:none;
transition: all .2s ease;
}
.widget-buttons-grid > flowbox > flowboxchild > button:hover {
background: @border;
box-shadow: 0px 0px 2px rgba(0, 0, 0, .2);
transition: all .2s ease;
}
.widget-buttons-grid > flowbox > flowboxchild > button.toggle:checked {
background: @active;
}
.widget-buttons-grid > flowbox > flowboxchild > button.toggle:checked label {
color: @background;
}

View file

@ -0,0 +1,506 @@
{
"layer": "top",
"position": "right",
"margin": "1 1 1 2",
"reload_style_on_change": true,
// Modules display
"modules-left": [
//"custom/updates",
"hyprland/workspaces",
"hyprland/submap"
//"group/info",
//"hyprland/window"
],
"modules-right": [
"custom/recorder",
"privacy",
"group/brightness",
"group/sound",
"group/connection",
"tray",
"group/together",
//"group/cnoti",
"group/power"
],
// Modules definition
// Up
"hyprland/workspaces": {
"format": "{icon}",
"on-click": "activate",
"all-outputs": true,
"format-icons": {
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "8",
"9": "9",
"10": "10"
}
},
"hyprland/submap": {
"format": "<b>󰇘</b>",
"max-length": 8,
"tooltip": true
},
"group/info": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false
},
"modules": [
"custom/dmark",
"group/gcpu",
"memory",
"disk",
"hyprland/window"
]
},
"hyprland/window": {
"orientation": "vertical",
"format":"<span weight='bold' >{class}</span>",
"spearate-outputs": true,
"icon": false
},
"custom/dmark": {
"format": "",
"tooltip": false
},
"group/gcpu": {
"orientation": "inherit",
"modules": [
"custom/cpu-icon",
"custom/cputemp",
"cpu"
]
},
"custom/cpu-icon": {
"format": "󰻠",
"tooltip": false
},
"custom/cputemp": {
"format": "{}",
"exec": "~/.config/waybar/bin/cputemp",
"interval": 10,
"return-type": "json"
},
"cpu": {
"format": "<b>{usage}󱉸</b>",
"on-click": "foot btop"
},
"memory": {
"format": "<b>  \n{:2}󱉸</b>"
},
"disk": {
"interval": 600,
"format": "<b> 󰋊 \n{percentage_used}󱉸</b>",
"path": "/"
},
// Bottom
"custom/recorder": {
"format": "{}",
"interval": "once",
"exec": "echo ''",
"tooltip": "false",
"exec-if": "pgrep 'wl-screenrec'",
"on-click": "recorder",
"signal": 4
},
"privacy": {
"orientation": "vertical",
"icon-spacing": 4,
"icon-size": 14,
"transition-duration": 250,
"modules": [
{
"type": "screenshare",
"tooltip": true,
"tooltip-icon-size": 24
}
]
},
"group/brightness": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false
},
"modules": [
"backlight"
//"backlight/slider"
]
},
"backlight": {
"device": "intel_backlight",
"format": "{icon}",
"format-icons": [
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
],
"on-scroll-down": "brightnessctl s 5%-",
"on-scroll-up": "brightnessctl s +5%",
"tooltip": true,
"tooltip-format": "Brightness: {percent}% ",
"smooth-scrolling-threshold": 1
},
"backlight/slider": {
"min": 1,
"max": 100,
"orientation": "vertical",
"device": "intel_backlight"
},
"group/sound": {
"orientation": "inherit",
"modules": [
"group/audio",
"custom/notifications"
]
},
"group/audio": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false
},
"modules": [
"pulseaudio",
"pulseaudio#mic",
"pulseaudio/slider"
]
},
"group/cnoti": {
"orientation": "inherit",
"modules": [
"custom/github"
]
},
"group/connection": {
"orientation": "inherit",
"modules": [
//"custom/vpn",
"custom/hotspot",
"group/network"
//"group/bluetooth"
]
},
"group/together": {
"orientation": "inherit",
"modules": [
"group/utils",
"clock"
]
},
"group/utils": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": true
},
"modules": [
"custom/mark",
"custom/weather",
"custom/colorpicker",
"custom/hyprshade",
"idle_inhibitor"
//"custom/hyprkill"
]
},
"group/network": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false
},
"modules": [
"network",
"network#speed"
]
},
"group/bluetooth": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": true
},
"modules": [
"bluetooth",
"bluetooth#status"
]
},
"group/battery": {
"orientation":"vertical",
"modules": [
"battery",
"custom/battery_percentage",
]
},
"group/power": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false
},
"modules": [
"group/battery",
"power-profiles-daemon",
]
},
"tray": {
"icon-size": 18,
"spacing": 10
},
"pulseaudio": {
"format": "{icon}",
"format-bluetooth": "{icon}",
"tooltip-format": "{volume}% {icon} | {desc}",
"format-muted": "󰖁",
"format-icons": {
"headphones": "",
"handsfree": "󱡏",
"headset": "",
"phone": "",
"portable": "",
"car": " ",
"default": [
"󰕿",
"󰖀",
"󰕾"
]
},
"on-click": "volume mute",
//"on-click-middle": "pavucontrol",
"on-scroll-up": "wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+",
"on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SINK@ -5%",
"smooth-scrolling-threshold": 1
},
"pulseaudio#mic": {
"format": "{format_source}",
"format-source": "󰍬",
"format-source-muted": "󰍭",
"tooltip-format": "{volume}% {format_source} ",
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle",
"on-scroll-down": "wpctl set-volume @DEFAULT_SOURCE@ 5%-",
"on-scroll-up": "wpctl set-volume -l 1 @DEFAULT_SOURCE@ 5%+"
},
"pulseaudio/slider": {
"min": 0,
"max": 100,
"orientation": "vertical"
},
"network": {
"format": "{icon}",
"format-icons": {
"wifi": [
"󰤨"
],
"ethernet": [
""
],
"disconnected": [
"󰤮"
]
},
"format-wifi": "󰤨",
"format-ethernet": "",
"format-disconnected": "󰤮",
"format-linked": "󰈁",
"tooltip": false,
"on-click": "python ~/.local/bin/rofi-wifi",
},
"network#speed": {
"format": " {bandwidthDownBits} ",
"rotate": 90,
"interval": 5,
"tooltip-format": "{ipaddr}",
"tooltip-format-wifi": "{essid} ({signalStrength}%)  \n{ipaddr} | {frequency} MHz{icon} ",
"tooltip-format-ethernet": "{ifname} 󰈀 \n{ipaddr} | {frequency} MHz{icon} ",
"tooltip-format-disconnected": "Not Connected to any type of Network",
"tooltip": true,
"on-click": "pgrep -x rofi &>/dev/null && notify-send rofi || networkmanager_dmenu"
},
"bluetooth": {
"format-on": "󰂯",
"format-off": "󰂲",
"format-disabled": "",
"format-connected": "<b>󰂱</b>",
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%",
"on-click": "rofi-bluetooth"
},
"bluetooth#status": {
"format-on": "",
"format-off": "",
"format-disabled": "",
"format-connected": "<b>{num_connections}</b>",
"format-connected-battery": "<small><b>{device_battery_percentage}%</b></small>",
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%",
"on-click": "rofi-bluetooth -config ~/.config/rofi/menu.d/network.rasi -i"
},
"battery": {
"rotate": 270,
"states": {
"good": 95,
"warning": 16,
"critical": 8
},
"format": "{icon}",
"interval": 1,
"format-charging": "󰂄",
"format-full": "<span color='#82A55F'><b>{icon}</b></span>",
"format-icons": [
"󰁻",
"󰁼",
"󰁾",
"󰂀",
"󰂂",
"󰁹"
],
"tooltip-format": "{timeTo} {capacity} % | {power} W"
},
"custom/battery_percentage": {
"format": "<b>{}</b>",
//"exec": "cat /sys/class/power_supply/BAT*/capacity",
// Makes battery like if 85% was the maximum capacity (100%).
// Useful for people that limit charge up to a certain percentage but like having real percentage
"exec": "echo $(( $(cat /sys/class/power_supply/BAT*/capacity) * 100 / 85 ))",
"interval": 10,
"tooltip": false
},
"clock": {
"format": "{:%H\n%M}",
"tooltip-format": "<tt><small>{calendar}</small></tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"weeks-pos": "right",
"on-scroll": 1,
"on-click-right": "mode",
"on-click": "swaync-client -t",
"format": {
"today": "<span color='#a6e3a1'><b><u>{}</u></b></span>"
}
}
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "<span color='#B37F34'><small></small></span>",
"balanced": "<span><small> </small></span>",
"power-saver": "<span color='#a6e3a1'><small></small></span>"
}
},
"custom/hyprshade": {
"format": "{}",
"tooltip": true,
"signal": 11,
"exec": "toggle-hyprshade status",
"on-click": "toggle-hyprshade",
"return-type": "json"
},
"custom/weather": {
"format": "{}",
"tooltip": true,
"interval": 3600,
"exec": "wttrbar --custom-indicator '{ICON}\n<b>{temp_C}</b>' --location noida",
"return-type": "json"
},
"custom/updates": {
"format": "{}",
"interval": 10800,
"exec": "~/.config/waybar/bin/updatecheck",
"return-type": "json",
"exec-if": "exit 0",
"signal": 8
},
"custom/vpn": {
"format": "{} ",
"exec": "~/.config/waybar/bin/vpn",
"return-type": "json",
"interval": 5
},
"custom/hotspot": {
"format": "{} ",
"exec": "~/.config/waybar/bin/hotspot",
"return-type": "json",
"on-click": "hash wihotspot && wihotspot",
"interval": 5
},
"custom/mark": {
"format": "",
"tooltip": false
},
"custom/colorpicker": {
"format": "{}",
"interval": "once",
"on-click": "hyprpicker",
"signal": 1
},
"custom/hyprkill": {
"format": "{}",
"interval": "once",
"exec": "echo '󰱝\nKill clients using hyrpctl kill'",
"on-click": "sleep 1 && hyprctl kill"
},
"custom/notifications": {
"format": "<b>{}</b> ",
"exec": "noti-cycle -j",
"on-click": "noti-cycle",
"on-click-right": "noti-cycle rofi",
"return-type": "json",
"interval": "once",
"signal": 2
},
"custom/github": {
"format": "{}",
"return-type": "json",
"interval": 3600,
"signal": 9,
"exec": "$HOME/.config/waybar/bin/github.sh",
"on-click": "xdg-open https://github.com/notifications;pkill -RTMIN+9 waybar"
},
"idle_inhibitor": {
"format": "{icon}",
"tooltip-format-activated": "Idle Inhibitor is active",
"tooltip-format-deactivated": "Idle Inhibitor is not active",
"format-icons": {
"activated": "󰅶",
"deactivated": "󰾪"
}
}
}

View file

@ -0,0 +1,305 @@
@import "colors.css";
@define-color active @foreground;
* {
font-size: 17px;
font-family: "JetBrainsMono Nerd Font Propo";
min-width: 8px;
min-height: 0px;
border: none;
border-radius: 0;
box-shadow: none;
text-shadow: none;
padding: 0px;
}
window#waybar {
transition-property: background-color;
transition-duration: 0.5s;
border-radius: 4px;
border: 1px solid alpha(@active, 0.2);
background: @background;
background: alpha(@background, 0.8);
color: @foreground;
}
menu,
tooltip {
border-radius: 2px;
padding: 2px;
border: 1px solid @active;
background: @background;
color: @foreground;
}
menu label,
tooltip label {
font-size: 14px;
color: @foreground;
}
#submap,
#tray>.needs-attention {
animation-name: blink-active;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
.modules-right {
margin: 0px 6px 4px 6px;
border-radius: 4px;
background: alpha(@background, 0);
color: @foreground;
}
.modules-left {
transition-property: background-color;
transition-duration: 0.5s;
margin: 6px 5px 6px 5px; /* Testing with 5 pixels on left/right */
border-radius: 4px;
background: alpha(@background, 0.5);
color: @foreground;
border: 1px solid alpha(@active, 0.1);
}
#gcpu,
#custom-github,
#memory,
#disk,
#together,
#submap,
#custom-weather,
#custom-recorder,
#connection,
#cnoti,
#brightness,
#power,
#custom-updates,
#tray,
/*#audio,*/ /* Duplicate with #sound */
#sound,
#privacy { /*Controls all the right modules for some reason*/
border-radius: 0.15em;
margin: 2px 1px 3px 1px;
background: alpha(darker(@active), 0.25);
border: 1px solid alpha(darker(@active), 0.0);
}
/* Override specific parameters*/
#brightness,
#sound {
padding: 1px 0px;
}
#custom-notifications {
padding-left: 4px;
}
#custom-hotspot,
#custom-github,
#custom-notifications {
font-size: 14px;
}
#custom-vpn,
#custom-hotspot {
background: alpha(darker(@active), 0.3);
}
#privacy-item {
padding: 6px 0px 6px 6px;
}
#gcpu {
padding: 8px 0px 8px 0px;
}
#custom-cpu-icon {
font-size: 25px;
}
#custom-cputemp,
#disk,
#memory,
#cpu {
font-size: 14px;
font-weight: bold;
}
#custom-github {
padding-top: 2px;
}
#custom-dmark {
color: alpha(@foreground, 0.3);
}
#submap {
margin-bottom: 0px;
}
#workspaces {
margin: 0px 2px;
padding: 2px 0px;
border-radius: 8px;
}
#workspaces button {
transition-property: background-color;
transition-duration: 0.1s;
color: @foreground;
background: transparent;
border-radius: 4px;
color: alpha(@foreground, 0.3);
padding: 2px 0px;
}
#workspaces button.urgent {
font-weight: bold;
color: @foreground;
}
#workspaces button.active {
padding: 2px 0px;
background: alpha(@active, 0.4);
color: @foreground;
border-radius: 2px;
}
#network.wifi {
margin: 2px;
}
#network.disconnected {
margin: 2px;
}
#network.ethernet {
margin: 2px;
}
#submap {
min-width: 0px;
margin: 4px 6px 4px 6px;
}
#custom-weather,
#tray {
padding: 4px 0px 4px 0px;
}
#bluetooth {
padding-top: 2px;
}
#group-battery {
/* border-radius: 8px; */
/* padding: 4px 0px; */
margin: 4px 2px 4px 2px;
}
#battery {
font-size: 1.5rem;
border-radius: 3px;
padding: 4px 0px;
margin: 0 0px;
}
#battery.charging {
color: @charging;
}
#battery.discharging.warning {
background-color: #cf9022;
/*animation-name: blink-yellow;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate; */
}
#battery.discharging.critical {
background-color: #c64d4f;
/*animation-name: blink-red;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;*/
}
#custom-battery_percentage {
font-size: 1.1rem;
border-radius: 100px;
/* padding: 0 2px; */
margin: 1px 0;
/* margin: 4px 2px 4px 2px; */
}
#clock {
font-weight: bold;
padding: 4px 2px 2px 2px;
}
#pulseaudio.mic {
border-radius: 4px;
color: @foreground;
padding-left: 2px;
}
#backlight-slider slider,
#pulseaudio-slider slider {
background-color: transparent;
box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
margin-top: 4px;
min-width: 6px;
min-height: 60px;
border-radius: 8px;
background-color: alpha(@background, 0.6);
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
border-radius: 8px;
background-color: @foreground;
}
#bluetooth.discoverable,
#bluetooth.discovering,
#bluetooth.pairable {
border-radius: 8px;
animation-name: blink-active;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
@keyframes blink-active {
to {
background-color: @active;
color: @foreground;
}
}
@keyframes blink-red {
to {
background-color: #c64d4f;
color: @foreground;
}
}
@keyframes blink-yellow {
to {
background-color: #cf9022;
color: @foreground;
}
}

View file

@ -0,0 +1,292 @@
@import "colors.css";
@define-color active @accentColor;
* {
font-size: 16px;
font-family: "JetBrainsMono Nerd Font,JetBrainsMono NF";
min-width: 8px;
min-height: 0px;
border: none;
border-radius: 0;
box-shadow: none;
text-shadow: none;
padding: 0px;
}
window#waybar {
transition-property: background-color;
transition-duration: 0.5s;
border-radius: 4px;
border: 1px solid alpha(@active, 0.2);
background: @background;
background: alpha(@background, 0.7);
color: lighter(@active);
}
menu,
tooltip {
border-radius: 2px;
padding: 2px;
border: 1px solid @active;
background: @background;
color: lighter(@active);
}
menu label,
tooltip label {
font-size: 14px;
color: lighter(@active);
}
#submap,
#tray>.needs-attention {
animation-name: blink-active;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
.modules-right {
margin: 0px 6px 4px 6px;
border-radius: 4px;
background: alpha(@background, 0);
color: lighter(@active);
}
.modules-left {
transition-property: background-color;
transition-duration: 0.5s;
margin: 6px 5px 6px 5px; /* Testing with 5 pixels on left/right */
border-radius: 4px;
background: alpha(@background, 0.0);
color: lighter(@active);
border: 1px solid alpha(@active, 0.0);
}
#gcpu,
#custom-github,
#memory,
#disk,
#together,
#submap,
#custom-weather,
#custom-recorder,
#connection,
#cnoti,
#brightness,
#power,
#custom-updates,
#tray,
/*#audio,*/ /* Duplicate with #sound */
#sound,
#privacy { /*Controls all the right modules for some reason*/
border-radius: 2px;
margin: 2px 1px 3px 1px;
background: alpha(darker(@active), 0.0);
border: 1px solid alpha(darker(@active), 0.0);
}
/* Override specific parameters*/
#brightness,
#sound {
padding: 1px 0px;
}
#custom-notifications {
padding-left: 4px;
}
#custom-hotspot,
#custom-github,
#custom-notifications {
font-size: 14px;
}
#custom-hotspot {
padding-right: 2px;
}
#custom-vpn,
#custom-hotspot {
background: alpha(darker(@active), 0.3);
}
#privacy-item {
padding: 6px 0px 6px 6px;
}
#gcpu {
padding: 8px 0px 8px 0px;
}
#custom-cpu-icon {
font-size: 25px;
}
#custom-cputemp,
#disk,
#memory,
#cpu {
font-size: 14px;
font-weight: bold;
}
#custom-github {
padding-top: 2px;
padding-right: 4px;
}
#custom-dmark {
color: alpha(@foreground, 0.3);
}
#submap {
margin-bottom: 0px;
}
#workspaces {
margin: 0px 2px;
padding: 2px 0px;
border-radius: 8px;
}
#workspaces button {
transition-property: background-color;
transition-duration: 0.1s;
color: @foreground;
background: transparent;
border-radius: 4px;
color: alpha(@foreground, 0.3);
padding: 2px 0px;
}
#workspaces button.urgent {
font-weight: bold;
color: @foreground;
}
#workspaces button.active {
padding: 2px 0px;
background: alpha(@active, 0.4);
color: lighter(@active);
border-radius: 2px;
}
#network.wifi {
padding-right: 5px;
margin: 2px 0px;
}
#network.disconnected {
padding-right: 5px;
margin: 2px 0px;
}
#network.ethernet {
padding-right: 3px;
margin: 2px 0px;
}
#submap {
min-width: 0px;
margin: 4px 6px 4px 6px;
}
#custom-weather,
#tray {
padding: 4px 0px 4px 0px;
}
#bluetooth {
padding-top: 2px;
}
#battery {
border-radius: 8px;
padding: 4px 0px;
margin: 4px 2px 4px 2px;
}
#battery.discharging.warning {
animation-name: blink-yellow;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#battery.discharging.critical {
animation-name: blink-red;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#clock {
font-weight: bold;
padding: 4px 2px 2px 2px;
}
#pulseaudio.mic {
border-radius: 4px;
color: lighter(@active);
padding-left: 2px;
}
#backlight-slider slider,
#pulseaudio-slider slider {
background-color: transparent;
box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
margin-top: 4px;
min-width: 6px;
min-height: 60px;
border-radius: 8px;
background-color: alpha(@background, 0.6);
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
border-radius: 8px;
background-color: lighter(@active);
}
#bluetooth.discoverable,
#bluetooth.discovering,
#bluetooth.pairable {
border-radius: 8px;
animation-name: blink-active;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
@keyframes blink-active {
to {
background-color: @active;
color: @foreground;
}
}
@keyframes blink-red {
to {
background-color: #c64d4f;
color: @foreground;
}
}
@keyframes blink-yellow {
to {
background-color: #cf9022;
color: @foreground;
}
}

View file

@ -0,0 +1,224 @@
{
"layer": "top",
"position": "bottom",
"height": 24,
"spacing": 5,
"modules-left": ["hyprland/workspaces"],
"modules-center": ["clock"],
"modules-right": ["tray", "group/audio", "bluetooth", "group/network_grp", "idle_inhibitor", "group/power" ],
"group/network_grp": {
"orientation": "inherit",
"drawer": {
"transition-duration": 300,
"transition-left-to-right": false
},
"modules": [
"network",
"network#speed"
]
},
"group/audio": {
"orientation": "inherit",
"drawer": {
"transition-duration": 300,
"transition-left-to-right": false
},
"modules": [
"pulseaudio",
"pulseaudio#mic",
"pulseaudio#volume",
]
},
"group/power": {
"orientation": "inherit",
"drawer": {
"transition-duration": 300,
"transition-left-to-right": true
},
"modules": [
"battery",
"custom/battery_percentage",
"power-profiles-daemon",
]
},
"hyprland/workspaces": {
"format": "<span size='larger'>{icon}</span>",
"on-click": "activate",
"format-icons": {
"active": "\uf444",
"default": "\uf4c3"
},
"icon-size": 10,
"sort-by-number": true,
"persistent-workspaces": {
"1": [],
"2": [],
"3": [],
"4": [],
"5": [],
}
},
"clock": {
"format": "{:%d.%m.%Y | %H:%M}"
},
//"wireplumber": {
// "format": "\udb81\udd7e {volume}%",
// "max-volume": 100,
// "scroll-step": 5
//},
"pulseaudio": {
"format": "{icon} ",
"format-bluetooth": "{icon}",
"tooltip-format": "{volume}% {icon} | {desc}",
"format-muted": "󰖁",
"format-icons": {
"headphones": "",
"handsfree": "󱡏",
"headset": "",
"phone": "",
"portable": "",
"car": " ",
"default": [
"󰕿",
"󰖀",
"󰕾"
]
},
"on-click": "volume mute",
//"on-click-middle": "pavucontrol",
"on-scroll-up": "wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+",
"on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SINK@ -5%",
"smooth-scrolling-threshold": 1
},
"pulseaudio#volume": {
"format": " {volume}% "
},
// TODO missing
"pulseaudio#mic": {
"format": "{format_source}",
"format-source": "󰍬",
"format-source-muted": "󰍭",
"tooltip-format": "{volume}% {format_source} ",
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle",
"on-scroll-down": "wpctl set-volume @DEFAULT_SOURCE@ 5%-",
"on-scroll-up": "wpctl set-volume -l 1 @DEFAULT_SOURCE@ 5%+"
},
// "battery": {
// "bat": "BAT1",
// "interval": 60,
// "format": "{icon} {capacity}%",
// "format-icons": ["\uf244", "\uf243", "\uf242", "\uf241", "\uf240"],
// },
"battery": {
"rotate": 270,
"states": {
"good": 95,
"warning": 16,
"critical": 8
},
"format": "{icon}",
"interval": 1,
"format-charging": "󰂄",
"format-full": "<span color='#82A55F'><b>{icon}</b></span>",
"format-icons": [
"󰁻",
"󰁼",
"󰁾",
"󰂀",
"󰂂",
"󰁹"
],
"tooltip-format": "{timeTo} {capacity} % | {power} W"
},
"custom/battery_percentage": {
"format": "{}",
//"exec": "cat /sys/class/power_supply/BAT*/capacity",
// Makes battery like if 85% was the maximum capacity (100%).
// Useful for people that limit charge up to a certain percentage but like having real percentage
"exec": "echo $(( $(cat /sys/class/power_supply/BAT*/capacity) * 100 / 85 ))%",
"interval": 10,
"tooltip": false
},
"memory": {
"interval": 30,
"format": "\uf4bc {used:0.1f}G"
},
"temperature": {
"format": "{temperatureC}°C"
},
"network": {
"format": "",
"format-ethernet": "\udb83\udc9d",
"format-wifi": "{icon}",
"format-disconnected": "\udb83\udc9c",
"format-icons": ["\udb82\udd2f", "\udb82\udd1f", "\udb82\udd22", "\udb82\udd25", "\udb82\udd28"],
"tooltip-format-wifi": "{essid} ({signalStrength}%)",
"tooltip-format-ethernet": "{ifname}",
"tooltip-format-disconnected": "Disconnected",
"on-click": "python ~/.local/bin/rofi-wifi",
},
"network#speed": {
"format": "{bandwidthDownBits}",
"interval": 5,
"tooltip-format": "{ipaddr}",
"tooltip-format-wifi": "{essid} ({signalStrength}%)  \n{ipaddr} | {frequency} MHz{icon} ",
"tooltip-format-ethernet": "{ifname} 󰈀 \n{ipaddr} | {frequency} MHz{icon}",
"tooltip-format-disconnected": "Disconnected",
"tooltip": true
},
"bluetooth": {
"format": "\udb80\udcaf",
"format-disabled": "\udb80\udcb2",
"format-connected": "\udb80\udcb1",
"tooltip-format": "{controller_alias}\t{controller_address}",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"on-click": "rofi-bluetooth"
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "<span color='#B37F34'><small></small></span>",
"balanced": "<span><small> </small></span>",
"power-saver": "<span color='#a6e3a1'><small></small></span>"
}
},
"hyprland/language": {
"format": "{short}"
},
"tray": {
"icon-size": 16,
"spacing": 16
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "\udb80\udd76",
"deactivated": "\udb83\udfaa"
}
}
}

View file

@ -0,0 +1,60 @@
@define-color foreground #eeeeee;
@define-color foreground-inactive #aaaaaa;
@define-color background #000000;
* {
font-family: JetBrainsMono Nerd Font Propo;
font-size: 17px;
padding: 0;
margin: 0;
}
#waybar {
color: @foreground;
background-color: @background;
}
#workspaces button {
color: @foreground;
padding: 0 0.2em;
}
#workspaces button.empty {
color: @foreground-inactive;
}
#memory,
#wireplumber,
#audio,
#language,
#network,
#bluetooth
{
padding-right: 1em
}
#custom-battery_percentage,
#battery {
padding-right: 0.3em
}
#power-profiles-daemon {
padding-right: 0.7em;
padding-left: 0.4em
}
#idle_inhibitor {
padding-right: 0.6em
}
#tray {
padding-right: 1em
}
#network_grp {
padding: 0em
}
#pulseaudio.mic {
padding-left: .7em
}

View file

@ -1,4 +0,0 @@
@define-color foreground #c5c5c5;
@define-color background #18191c;
@define-color accentColor #b6c8d3;

View file

@ -0,0 +1 @@
../colors/colors.css

View file

@ -1,478 +0,0 @@
{
"layer": "top",
"position": "left",
"margin": "1 1 1 1",
"reload_style_on_change": true,
"modules-left": [
//"custom/updates",
"hyprland/workspaces",
"hyprland/submap"
//"group/info",
//"hyprland/window"
],
"hyprland/workspaces": {
"format": "{icon}",
"on-click": "activate",
"all-outputs": true,
"format-icons": {
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "8",
"9": "9",
"10": "10"
}
},
"hyprland/window": {
"format":"",
"spearate-outputs": true,
"icon": true
},
"hyprland/submap": {
"format": "<b>󰇘</b>",
"max-length": 8,
"tooltip": true
},
"group/info": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false
},
"modules": [
"custom/dmark",
"group/gcpu",
"memory",
"disk"
]
},
"custom/dmark": {
"format": "",
"tooltip": false
},
"group/gcpu": {
"orientation": "inherit",
"modules": [
"custom/cpu-icon",
"custom/cputemp",
"cpu"
]
},
"custom/cpu-icon": {
"format": "󰻠",
"tooltip": false
},
"custom/cputemp": {
"format": "{}",
"exec": "~/.config/waybar/bin/cputemp",
"interval": 10,
"return-type": "json"
},
"cpu": {
"format": "<b>{usage}󱉸</b>",
"on-click": "foot btop"
},
"memory": {
"format": "<b>  \n{:2}󱉸</b>"
},
"disk": {
"interval": 600,
"format": "<b> 󰋊 \n{percentage_used}󱉸</b>",
"path": "/"
},
"modules-right": [
"custom/recorder",
"privacy",
"group/brightness",
"group/sound",
"group/connection",
"tray",
"group/together",
//"group/cnoti",
"group/power"
],
"custom/recorder": {
"format": "{}",
"interval": "once",
"exec": "echo ''",
"tooltip": "false",
"exec-if": "pgrep 'wl-screenrec'",
"on-click": "recorder",
"signal": 4
},
"privacy": {
"orientation": "vertical",
"icon-spacing": 4,
"icon-size": 14,
"transition-duration": 250,
"modules": [
{
"type": "screenshare",
"tooltip": true,
"tooltip-icon-size": 24
}
]
},
"group/brightness": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false
},
"modules": [
"backlight"
//"backlight/slider"
]
},
"backlight": {
"device": "intel_backlight",
"format": "{icon}",
"format-icons": [
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
],
"on-scroll-down": "brightnessctl s 5%-",
"on-scroll-up": "brightnessctl s +5%",
"tooltip": true,
"tooltip-format": "Brightness: {percent}% ",
"smooth-scrolling-threshold": 1
},
"backlight/slider": {
"min": 1,
"max": 100,
"orientation": "vertical",
"device": "intel_backlight"
},
"group/sound": {
"orientation": "inherit",
"modules": [
"group/audio",
"custom/notifications"
]
},
"group/audio": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false
},
"modules": [
"pulseaudio",
"pulseaudio#mic",
"pulseaudio/slider"
]
},
"group/cnoti": {
"orientation": "inherit",
"modules": [
"custom/github"
]
},
"group/connection": {
"orientation": "inherit",
"modules": [
//"custom/vpn",
"custom/hotspot",
"group/network"
//"group/bluetooth"
]
},
"group/together": {
"orientation": "inherit",
"modules": [
"group/utils",
"clock"
]
},
"group/utils": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": true
},
"modules": [
"custom/mark",
"custom/weather",
"custom/colorpicker",
"custom/hyprshade",
"idle_inhibitor",
"custom/hyprkill"
]
},
"group/network": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false
},
"modules": [
"network",
"network#speed"
]
},
"group/bluetooth": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": true
},
"modules": [
"bluetooth",
"bluetooth#status"
]
},
"group/power": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": false
},
"modules": [
"battery",
"power-profiles-daemon"
]
},
"tray": {
"icon-size": 18,
"spacing": 10
},
"pulseaudio": {
"format": "{icon}",
"format-bluetooth": "{icon}",
"tooltip-format": "{volume}% {icon} | {desc}",
"format-muted": "󰖁",
"format-icons": {
"headphones": "",
"handsfree": "󱡏",
"headset": "",
"phone": "",
"portable": "",
"car": " ",
"default": [
"󰕿",
"󰖀",
"󰕾"
]
},
"on-click": "volume mute",
//"on-click-middle": "pavucontrol",
"on-scroll-up": "wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+",
"on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SINK@ -5%",
"smooth-scrolling-threshold": 1
},
"pulseaudio#mic": {
"format": "{format_source}",
"format-source": "󰍬",
"format-source-muted": "󰍭",
"tooltip-format": "{volume}% {format_source} ",
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle",
"on-scroll-down": "wpctl set-volume @DEFAULT_SOURCE@ 5%-",
"on-scroll-up": "wpctl set-volume -l 1 @DEFAULT_SOURCE@ 5%+"
},
"pulseaudio/slider": {
"min": 0,
"max": 100,
"orientation": "vertical"
},
"network": {
"format": "{icon}",
"format-icons": {
"wifi": [
"󰤨"
],
"ethernet": [
""
],
"disconnected": [
"󰤮"
]
},
"format-wifi": "󰤨",
"format-ethernet": "",
"format-disconnected": "󰤮",
"format-linked": "󰈁",
"tooltip": false,
//"on-click": "pgrep -x rofi &>/dev/null && notify-send rofi || networkmanager_dmenu"
"on-click": "kitty nmtui"
},
"network#speed": {
"format": " {bandwidthDownBits} ",
"rotate": 90,
"interval": 5,
"tooltip-format": "{ipaddr}",
"tooltip-format-wifi": "{essid} ({signalStrength}%)  \n{ipaddr} | {frequency} MHz{icon} ",
"tooltip-format-ethernet": "{ifname} 󰈀 \n{ipaddr} | {frequency} MHz{icon} ",
"tooltip-format-disconnected": "Not Connected to any type of Network",
"tooltip": true,
"on-click": "pgrep -x rofi &>/dev/null && notify-send rofi || networkmanager_dmenu"
},
"bluetooth": {
"format-on": "󰂯",
"format-off": "󰂲",
"format-disabled": "",
"format-connected": "<b>󰂱</b>",
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%",
//"on-click": "rofi-bluetooth -config ~/.config/rofi/menu.d/network.rasi -i"
"on-click": "toggle-bluetooth"
},
"bluetooth#status": {
"format-on": "",
"format-off": "",
"format-disabled": "",
"format-connected": "<b>{num_connections}</b>",
"format-connected-battery": "<small><b>{device_battery_percentage}%</b></small>",
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%",
"on-click": "rofi-bluetooth -config ~/.config/rofi/menu.d/network.rasi -i"
},
"battery": {
"rotate": 270,
"states": {
"good": 95,
"warning": 16,
"critical": 8
},
"format": "{icon}",
"interval": 1,
"format-charging": "<b>{icon} </b>",
"format-full": "<span color='#82A55F'><b>{icon}</b></span>",
"format-icons": [
"󰁻",
"󰁼",
"󰁾",
"󰂀",
"󰂂",
"󰁹"
],
"tooltip-format": "{timeTo} {capacity} % | {power} W"
},
"clock": {
"format": "{:%H\n%M}",
"tooltip-format": "<tt><small>{calendar}</small></tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"weeks-pos": "right",
"on-scroll": 1,
"on-click-right": "mode",
"format": {
"today": "<span color='#a6e3a1'><b><u>{}</u></b></span>"
}
}
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "<span color='#B37F34'><small></small></span>",
"balanced": "<span><small> </small></span>",
"power-saver": "<span color='#a6e3a1'><small></small></span>"
}
},
"custom/hyprshade": {
"format": "{}",
"tooltip": true,
"signal": 11,
"exec": "toggle-hyprshade status",
"on-click": "toggle-hyprshade",
"return-type": "json"
},
"custom/weather": {
"format": "{}",
"tooltip": true,
"interval": 3600,
"exec": "wttrbar --custom-indicator '{ICON}\n<b>{temp_C}</b>' --location noida",
"return-type": "json"
},
"custom/updates": {
"format": "{}",
"interval": 10800,
"exec": "~/.config/waybar/bin/updatecheck",
"return-type": "json",
"exec-if": "exit 0",
"signal": 8
},
"custom/vpn": {
"format": "{} ",
"exec": "~/.config/waybar/bin/vpn",
"return-type": "json",
"interval": 5
},
"custom/hotspot": {
"format": "{} ",
"exec": "~/.config/waybar/bin/hotspot",
"return-type": "json",
"on-click": "hash wihotspot && wihotspot",
"interval": 5
},
"custom/mark": {
"format": "",
"tooltip": false
},
"custom/colorpicker": {
"format": "{}",
"return-type": "json",
"interval": "once",
"exec": "colorpicker -j",
"on-click": "sleep 1 && colorpicker",
"signal": 1
},
"custom/hyprkill": {
"format": "{}",
"interval": "once",
"exec": "echo '󰱝\nKill clients using hyrpctl kill'",
"on-click": "sleep 1 && hyprctl kill"
},
"custom/notifications": {
"format": "<b>{}</b> ",
"exec": "noti-cycle -j",
"on-click": "noti-cycle",
"on-click-right": "noti-cycle rofi",
"return-type": "json",
"interval": "once",
"signal": 2
},
"custom/github": {
"format": "{}",
"return-type": "json",
"interval": 3600,
"signal": 9,
"exec": "$HOME/.config/waybar/bin/github.sh",
"on-click": "xdg-open https://github.com/notifications;pkill -RTMIN+9 waybar"
},
"idle_inhibitor": {
"format": "{icon}",
"tooltip-format-activated": "Idle Inhibitor is active",
"tooltip-format-deactivated": "Idle Inhibitor is not active",
"format-icons": {
"activated": "󰅶",
"deactivated": "󰾪"
}
}
}

View file

@ -0,0 +1 @@
Boussole/config.jsonc

View file

@ -1,292 +0,0 @@
@import "colors.css";
@define-color active @accentColor;
* {
font-size: 16px;
font-family: "JetBrainsMono Nerd Font,JetBrainsMono NF";
min-width: 8px;
min-height: 0px;
border: none;
border-radius: 0;
box-shadow: none;
text-shadow: none;
padding: 0px;
}
window#waybar {
transition-property: background-color;
transition-duration: 0.5s;
border-radius: 4px;
border: 1px solid alpha(@active, 0.2);
background: @background;
background: alpha(@background, 0.7);
color: lighter(@active);
}
menu,
tooltip {
border-radius: 2px;
padding: 2px;
border: 1px solid @active;
background: @background;
color: lighter(@active);
}
menu label,
tooltip label {
font-size: 14px;
color: lighter(@active);
}
#submap,
#tray>.needs-attention {
animation-name: blink-active;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
.modules-right {
margin: 0px 6px 4px 6px;
border-radius: 4px;
background: alpha(@background, 0);
color: lighter(@active);
}
.modules-left {
transition-property: background-color;
transition-duration: 0.5s;
margin: 6px 5px 6px 5px; /* Testing with 5 pixels on left/right */
border-radius: 4px;
background: alpha(@background, 0.5);
color: lighter(@active);
border: 1px solid alpha(@active, 0.1);
}
#gcpu,
#custom-github,
#memory,
#disk,
#together,
#submap,
#custom-weather,
#custom-recorder,
#connection,
#cnoti,
#brightness,
#power,
#custom-updates,
#tray,
/*#audio,*/ /* Duplicate with #sound */
#sound,
#privacy { /*Controls all the right modules for some reason*/
border-radius: 2px;
margin: 2px 1px 3px 1px;
background: alpha(darker(@active), 0.3);
border: 1px solid alpha(darker(@active), 0.2);
}
/* Override specific parameters*/
#brightness,
#sound {
padding: 1px 0px;
}
#custom-notifications {
padding-left: 4px;
}
#custom-hotspot,
#custom-github,
#custom-notifications {
font-size: 14px;
}
#custom-hotspot {
padding-right: 2px;
}
#custom-vpn,
#custom-hotspot {
background: alpha(darker(@active), 0.3);
}
#privacy-item {
padding: 6px 0px 6px 6px;
}
#gcpu {
padding: 8px 0px 8px 0px;
}
#custom-cpu-icon {
font-size: 25px;
}
#custom-cputemp,
#disk,
#memory,
#cpu {
font-size: 14px;
font-weight: bold;
}
#custom-github {
padding-top: 2px;
padding-right: 4px;
}
#custom-dmark {
color: alpha(@foreground, 0.3);
}
#submap {
margin-bottom: 0px;
}
#workspaces {
margin: 0px 2px;
padding: 2px 0px;
border-radius: 8px;
}
#workspaces button {
transition-property: background-color;
transition-duration: 0.1s;
color: @foreground;
background: transparent;
border-radius: 4px;
color: alpha(@foreground, 0.3);
padding: 2px 0px;
}
#workspaces button.urgent {
font-weight: bold;
color: @foreground;
}
#workspaces button.active {
padding: 2px 0px;
background: alpha(@active, 0.4);
color: lighter(@active);
border-radius: 2px;
}
#network.wifi {
padding-right: 5px;
margin: 2px 0px;
}
#network.disconnected {
padding-right: 5px;
margin: 2px 0px;
}
#network.ethernet {
padding-right: 3px;
margin: 2px 0px;
}
#submap {
min-width: 0px;
margin: 4px 6px 4px 6px;
}
#custom-weather,
#tray {
padding: 4px 0px 4px 0px;
}
#bluetooth {
padding-top: 2px;
}
#battery {
border-radius: 8px;
padding: 4px 0px;
margin: 4px 2px 4px 2px;
}
#battery.discharging.warning {
animation-name: blink-yellow;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#battery.discharging.critical {
animation-name: blink-red;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#clock {
font-weight: bold;
padding: 4px 2px 2px 2px;
}
#pulseaudio.mic {
border-radius: 4px;
color: lighter(@active);
padding-left: 2px;
}
#backlight-slider slider,
#pulseaudio-slider slider {
background-color: transparent;
box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
margin-top: 4px;
min-width: 6px;
min-height: 60px;
border-radius: 8px;
background-color: alpha(@background, 0.6);
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
border-radius: 8px;
background-color: lighter(@active);
}
#bluetooth.discoverable,
#bluetooth.discovering,
#bluetooth.pairable {
border-radius: 8px;
animation-name: blink-active;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
@keyframes blink-active {
to {
background-color: @active;
color: @foreground;
}
}
@keyframes blink-red {
to {
background-color: #c64d4f;
color: @foreground;
}
}
@keyframes blink-yellow {
to {
background-color: #cf9022;
color: @foreground;
}
}

View file

@ -0,0 +1 @@
Boussole/style.css

View file

@ -0,0 +1,101 @@
/* Boussole theme by Gu://em_*/
/* Based on work done by */
/* Newman Sanchez (https://github.com/newmanls) */
* {
font: "JetBrainsMono Nerd Font Propo Regular 12";
bg0: #0d1117;
bg1: #1a2330;
fg0: #eeffff;
accent-color: #e64e4e;
urgent-color: #ffcb6b;
background-color: transparent;
text-color: @fg0;
margin: 0;
padding: 0;
spacing: 0;
}
window {
location: center;
width: 600;
background-color: @bg0;
/*border-radius: 4px;*/
}
inputbar {
spacing: 8px;
padding: 8px;
background-color: @bg1;
children: [ prompt, entry ];
}
prompt, entry, element-icon, element-text {
vertical-align: 0.5;
}
prompt {
text-color: @accent-color;
}
textbox {
padding: 8px;
background-color: @bg1;
}
listview {
padding: 4px 0;
lines: 8;
columns: 1;
fixed-height: false;
}
element {
padding: 8px;
spacing: 8px;
}
element normal normal {
text-color: @fg0;
}
element normal urgent {
text-color: @urgent-color;
}
element normal active {
text-color: @accent-color;
}
element alternate active {
text-color: @accent-color;
}
element selected {
text-color: @bg0;
}
element selected normal, element selected active {
background-color: @accent-color;
}
element selected urgent {
background-color: @urgent-color;
}
element-icon {
size: 0.8em;
}
element-text {
text-color: inherit;
}

View file

@ -1 +1 @@
albert
rofi-bluetooth-git

View file

@ -4,5 +4,7 @@ fastfetch
fzf
git
gnome-keyring
helix
openssh
zoxide
wget
zoxide

View file

@ -8,9 +8,10 @@ mandoc
man-pages
networkmanager
os-prober
sudo
sof-firmware
stow
sudo
ufw
vim
zram-generator
zsh
zsh

View file

@ -1,18 +1,23 @@
pipewire-jack
pipewire
wireplumber
pipewire-pulse
greetd-tuigreet
foot
grim
hypridle
hyprland
hyprland-qtutils
hyprlock
hyprpaper
hyprland-qtutils
hyprpicker
hyprpolkitagent
xdg-desktop-portal-hyprland
waybar
hyprsunset
ly
pipewire
pipewire-jack
pipewire-pulse
power-profiles-daemon
fnott
kitty
grim
slurp
pulsemixer
rofi
rofimoji
slurp
swaync
waybar
wireplumber
xdg-desktop-portal-hyprland

View file

@ -1,4 +1,4 @@
ttf-dejavu
ttf-jetbrains-mono-nerd
noto-fonts
noto-fonts-emoji
noto-fonts-emoji

View file

@ -1,3 +1,4 @@
bluez
bluez-utils
blueman
blueman
fprintd

64
setup.sh Normal file → Executable file
View file

@ -1,7 +1,8 @@
#!/bin/sh
version="Beta 25.04.04-2"
version="Beta 26.04.27-1"
echo -e "Atlas Desktop Installer - ${version}\n"
echo "Atlas Desktop Installer - ${version}"
echo
# Definitions
@ -10,27 +11,31 @@ script_path=$PWD
pkgs_path="${script_path}/packages"
config_path="${script_path}/config"
CPU_vendor=$(lscpu | grep Vendor | awk '{print $NF}')
dotfiles_path="~/.dotfiles"
dotfiles_path="$HOME/.dotfiles"
## Functions
function install() {
echo -e "\nDownloading $1 packages...\n"
sudo pacman -Syu --noconfirm --color auto $(cat $pkgs_path/$1.pkgs)
echo -e "\n\nDone\n"
install() {
echo
echo "Downloading $1 packages..."
echo
sudo pacman -Syu --noconfirm --color auto "$(cat "$pkgs_path"/"$1".pkgs)"
printf "\n\nDone\n\n"
}
function install_aur() {
echo -e "\nDownloading $1 packages...\n"
paru -Syu --noconfirm --color auto $(cat $pkgs_path/$1.pkgs)
echo -e "\nDone\n"
install_aur() {
echo
echo "Downloading $1 packages..."
echo
paru -Syu --noconfirm --color auto "$(cat "$pkgs_path"/"$1".pkgs)"
printf "\n\nDone\n\n"
}
# Checks
## Sudo installed
pacman -Q sudo > /dev/null
if [ $? != 0 ]; then
if ! pacman -Q sudo > /dev/null; then
echo "Please install 'sudo' first"
exit 1
fi
@ -59,7 +64,7 @@ install desktop
install theming
## Vendor specific packages
if [ $CPU_vendor == "Genuine Intel" ]; then
if [ "$CPU_vendor" = "Genuine Intel" ]; then
install intel
fi
@ -68,7 +73,7 @@ git clone https://aur.archlinux.org/paru.git /tmp/paru &&
echo "Installing paru" &&
cd /tmp/paru &&
makepkg -si
cd $script_path
cd "$script_path" || exit 1
## AUR packages
install_aur aur
@ -76,40 +81,37 @@ install_aur aur
# Configuration
echo -e "\n--- Configuration ---\n"
printf "\n--- Configuration ---\n\n"
## Dotfiles
echo "Copying configuration files"
cp -r $config_path $dotfiles_path &&
cd $dotfiles_path &&
cp -r "$config_path" "$dotfiles_path" &&
cd "$dotfiles_path" &&
stow .
cd $script_path
## Install launcher theme (albert)
sudo ln -s .config/albert/schemes/Seventy\ Eight.qss /usr/share/albert/widgetsboxmodel/themes/
cd "$script_path" || exit 1
## Swap (Zram)
is_zram_active=$(sudo systemctl is-active systemd-zram-setup@zram0.service)
if [ is_zram_active != "active" ]; then
echo -e "\n========================================"
if [ "$is_zram_active" != "active" ]; then
printf "\n========================================\n"
echo "WARNING: you don't have Zram enabled"
echo "Since this script is not yet capable of activating zram, you'll have to do it yourself"
echo "Please refer to https://wiki.archlinux.org/title/Zram#Using_zram-generator"
echo -e "========================================\n"
printf "========================================\n\n"
fi
## Mandatory Access Control (Apparmor)
is_aa_active=$(sudo systemctl is-active apparmor.service)
if [ is_aa_active != "active" ]; then
echo -e "\n========================================"
if [ "$is_aa_active" != "active" ]; then
printf "\n========================================\n"
echo "WARNING: you don't have AppArmor enabled"
echo "Since this script is not yet capable of managing kernel parameters, you'll have to do it yourself"
echo "Please refer to https://wiki.archlinux.org/title/AppArmor"
echo -e "========================================\n"
printf "========================================\n\n"
fi
## Display manager (Greetd)
sudo systemctl enable greetd
## Display manager (Ly)
sudo systemctl enable ly@tty1.service
## Firewall (UFW)
sudo systemctl enable ufw
@ -122,4 +124,4 @@ echo
echo "Installation finished"
echo "Please check the previous outputs for warnings"
echo "You can make final adjustements before rebooting"
echo "- In particular, if you are using a qwerty keyboard, changing input-fr to input-en in ~/.config/hypr/hyprland.conf"
echo "- In particular, if you are using a qwerty keyboard, changing input-fr to input-en in ~/.config/hypr/hyprland.conf"