commit 6da0038f5d5a59e09e6c80b2bf53c58c56869f5c Author: tomoron Date: Wed Oct 16 19:11:15 2024 +0200 initial commit diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..4034f00 --- /dev/null +++ b/configuration.nix @@ -0,0 +1,57 @@ +# Edit this configuration file to define what should be installed on your system. Help is available in the configuration.nix(5) man page, on +# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). + +{ config, lib, inputs, pkgs, ... }: + +{ + # imports = []; + + nix.settings.experimental-features = ["nix-command" "flakes"]; + + boot.loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + timeout = 1; + }; + + networking.networkmanager.enable = lib.mkDefault true; + + # Set your time zone. + time.timeZone = "Europe/Paris"; + + services.xserver.enable = true; + services.xserver.displayManager.startx.enable = true; + + # Enable sound. + # hardware.pulseaudio.enable = true; + services.pipewire = { + enable = true; + pulse.enable = true; + }; + + # Enable touchpad support (enabled default in most desktopManager). services.libinput.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.tom = { + isNormalUser = true; + extraGroups = [ "wheel" ]; + initialPassword = "password"; +# packages = with pkgs; []; + }; + + # List packages installed in system profile. To search,: $ nix search wget + environment.systemPackages = with pkgs; [ + home-manager + killall + vim + ]; + + #Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + #Or disable the firewall altogether. + # networking.firewall.enable = false; + + system.stateVersion = "24.05"; # Did you read the comment? + +} diff --git a/dotfiles/bashrc b/dotfiles/bashrc new file mode 100644 index 0000000..5c5681f --- /dev/null +++ b/dotfiles/bashrc @@ -0,0 +1,29 @@ +export PATH="$HOME/.local/bin:$PATH" +alias ls='ls --color=auto' +alias grep='grep --color=auto' +export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' +alias vim=nvim +alias vi=nvim +alias "copy=xclip -selection c" +cat_cp() { + cat $@ | xclip -selection c +} + +shopt -s histappend + +alias clr=clear + +cd() { + builtin cd "$@" + echo -n "$PWD" > ~/.last_directory +} + +if [ -f ~/.last_directory ];then + echo -n going to + cat ~/.last_directory + echo + builtin cd "$(cat ~/.last_directory)" +fi +export PATH="$HOME/.local/bin:$PATH" +export PATH="$HOME/pyenv/bin:$PATH" +alias tagueule="asusctl profile -P Quiet" diff --git a/dotfiles/config/alacritty/alacritty.toml b/dotfiles/config/alacritty/alacritty.toml new file mode 100644 index 0000000..daa69fc --- /dev/null +++ b/dotfiles/config/alacritty/alacritty.toml @@ -0,0 +1,8 @@ +[window] +opacity = 0.90 + +[env] +XTERM = "xterm-256color" + +[font] +size = 12 diff --git a/dotfiles/config/bspwm/bspwmrc b/dotfiles/config/bspwm/bspwmrc new file mode 100755 index 0000000..beffd73 --- /dev/null +++ b/dotfiles/config/bspwm/bspwmrc @@ -0,0 +1,40 @@ +#! /bin/sh + +INTEGRATED="eDP-1" +HDMI="HDMI-1" +pgrep -x sxhkd > /dev/null || sxhkd & +killall polybar +if xrandr | grep "$HDMI connected" && cat /proc/acpi/button/lid/LID/state | grep "closed"; then + bash ~/.screenlayout/b.sh + bspc monitor $HDMI -d 1 2 3 4 5 + bspc monitor $INTEGRATED -r +elif xrandr | grep "$HDMI connected";then + bash ~/.screenlayout/a.sh + bspc monitor $INTEGRATED -d 1 2 3 4 + bspc monitor $HDMI -d A B +else + bspc monitor -d 1 2 3 4 5 + xrandr -r 60 +fi +bspc desktop 1 -f +(polybar -q main -c "$HOME/.config/polybar/config.ini")& +#(pulseaudio -D; polybar -q main -c "$HOME/.config/polybar/config.ini")& + +bspc config border_width 2 +bspc config window_gap 10 + +bspc config split_ratio 0.52 +bspc config borderless_monocle true +bspc config focus_follows_pointer true +bspc config gapless_monocle true + +pgrep -x alacritty > /dev/null || alacritty & + +#autostart appps +picom & +nitrogen --restore & +dunst & +numlockx on & +setxkbmap fr us& +killall activate-linux +(sleep 1;activate-linux -c 1-1-1-0.7 -V 50 -H 70 -d)& diff --git a/dotfiles/config/nitrogen/607699.png b/dotfiles/config/nitrogen/607699.png new file mode 100644 index 0000000..0eb8d9f Binary files /dev/null and b/dotfiles/config/nitrogen/607699.png differ diff --git a/dotfiles/config/nitrogen/bg-saved.cfg b/dotfiles/config/nitrogen/bg-saved.cfg new file mode 100644 index 0000000..8c13cfc --- /dev/null +++ b/dotfiles/config/nitrogen/bg-saved.cfg @@ -0,0 +1,9 @@ +[xin_0] +file=/home/tom/.config/nitrogen/thumb-1920-814854.png +mode=0 +bgcolor=#000000 + +[xin_1] +file=/home/tom/.config/nitrogen/thumb-1920-814854.png +mode=0 +bgcolor=#000000 diff --git a/dotfiles/config/nitrogen/nitrogen.cfg b/dotfiles/config/nitrogen/nitrogen.cfg new file mode 100644 index 0000000..9332534 --- /dev/null +++ b/dotfiles/config/nitrogen/nitrogen.cfg @@ -0,0 +1,12 @@ +[geometry] +posx=0 +posy=32 +sizex=450 +sizey=500 + +[nitrogen] +view=icon +recurse=true +sort=alpha +icon_caps=false +dirs=/home/tom/.config/nitrogen; diff --git a/dotfiles/config/nitrogen/thumb-1920-814854.png b/dotfiles/config/nitrogen/thumb-1920-814854.png new file mode 100644 index 0000000..3269dd6 Binary files /dev/null and b/dotfiles/config/nitrogen/thumb-1920-814854.png differ diff --git a/dotfiles/config/nvim/init.vim b/dotfiles/config/nvim/init.vim new file mode 100644 index 0000000..49b09ac --- /dev/null +++ b/dotfiles/config/nvim/init.vim @@ -0,0 +1,15 @@ +source ~/.vimrc + +let mapleader=";" +colorscheme vim + +call plug#begin('~/.config/nvim/plugged') +Plug 'bling/vim-bufferline' +Plug 'nvim-lua/plenary.nvim' +Plug 'nvim-telescope/telescope.nvim' +call plug#end() + +nnoremap ff Telescope find_files +nnoremap fg Telescope live_grep +nnoremap fb Telescope buffers +nnoremap fh Telescope help_tags diff --git a/dotfiles/config/nvim/plugin/stdheader.vim b/dotfiles/config/nvim/plugin/stdheader.vim new file mode 100644 index 0000000..e1363d7 --- /dev/null +++ b/dotfiles/config/nvim/plugin/stdheader.vim @@ -0,0 +1,150 @@ +let s:asciiart = [ + \" ::: ::::::::", + \" :+: :+: :+:", + \" +:+ +:+ +:+ ", + \" +#+ +:+ +#+ ", + \"+#+#+#+#+#+ +#+ ", + \" #+# #+# ", + \" ### ########.fr " + \] +let g:user42 = 'tomoron' +let g:mail42 = 'tomoron@student.42angouleme.fr' +let s:start = '/*' +let s:end = '*/' +let s:fill = '*' +let s:length = 80 +let s:margin = 5 + +let s:types = { + \'\.c$\|\.h$\|\.cc$\|\.hh$\|\.cpp$\|\.hpp$\|\.php': + \['/*', '*/', '*'], + \'\.htm$\|\.html$\|\.xml$': + \['', '*'], + \'\.js$': + \['//', '//', '*'], + \'\.tex$': + \['%', '%', '*'], + \'\.ml$\|\.mli$\|\.mll$\|\.mly$': + \['(*', '*)', '*'], + \'\.vim$\|\vimrc$': + \['"', '"', '*'], + \'\.el$\|\emacs$': + \[';', ';', '*'], + \'\.f90$\|\.f95$\|\.f03$\|\.f$\|\.for$': + \['!', '!', '/'] + \} + +function! s:filetype() + let l:f = s:filename() + + let s:start = '#' + let s:end = '#' + let s:fill = '*' + + for type in keys(s:types) + if l:f =~ type + let s:start = s:types[type][0] + let s:end = s:types[type][1] + let s:fill = s:types[type][2] + endif + endfor + +endfunction + +function! s:ascii(n) + return s:asciiart[a:n - 3] +endfunction + +function! s:textline(left, right) + let l:left = strpart(a:left, 0, s:length - s:margin * 2 - strlen(a:right)) + + return s:start . repeat(' ', s:margin - strlen(s:start)) . l:left . repeat(' ', s:length - s:margin * 2 - strlen(l:left) - strlen(a:right)) . a:right . repeat(' ', s:margin - strlen(s:end)) . s:end +endfunction + +function! s:line(n) + if a:n == 1 || a:n == 11 " top and bottom line + return s:start . ' ' . repeat(s:fill, s:length - strlen(s:start) - strlen(s:end) - 2) . ' ' . s:end + elseif a:n == 2 || a:n == 10 " blank line + return s:textline('', '') + elseif a:n == 3 || a:n == 5 || a:n == 7 " empty with ascii + return s:textline('', s:ascii(a:n)) + elseif a:n == 4 " filename + return s:textline(s:filename(), s:ascii(a:n)) + elseif a:n == 6 " author + return s:textline("By: " . s:user() . " <" . s:mail() . ">", s:ascii(a:n)) + elseif a:n == 8 " created + return s:textline("Created: " . s:date() . " by " . s:user(), s:ascii(a:n)) + elseif a:n == 9 " updated + return s:textline("Updated: " . s:date() . " by " . s:user(), s:ascii(a:n)) + endif +endfunction + +function! s:user() + if exists('g:user42') + return g:user42 + endif + let l:user = $USER + if strlen(l:user) == 0 + let l:user = "marvin" + endif + return l:user +endfunction + +function! s:mail() + if exists('g:mail42') + return g:mail42 + endif + let l:mail = $MAIL + if strlen(l:mail) == 0 + let l:mail = "marvin@42.fr" + endif + return l:mail +endfunction + +function! s:filename() + let l:filename = expand("%:t") + if strlen(l:filename) == 0 + let l:filename = "< new >" + endif + return l:filename +endfunction + +function! s:date() + return strftime("%Y/%m/%d %H:%M:%S") +endfunction + +function! s:insert() + let l:line = 11 + + " empty line after header + call append(0, "") + + " loop over lines + while l:line > 0 + call append(0, s:line(l:line)) + let l:line = l:line - 1 + endwhile +endfunction + +function! s:update() + call s:filetype() + if getline(9) =~ s:start . repeat(' ', s:margin - strlen(s:start)) . "Updated: " + if &mod + call setline(9, s:line(9)) + endif + call setline(4, s:line(4)) + return 0 + endif + return 1 +endfunction + +function! s:stdheader() + if s:update() + call s:insert() + endif +endfunction + +" Bind command and shortcut +command! Stdheader call s:stdheader () +map :Stdheader +autocmd BufWritePre * call s:update () diff --git a/dotfiles/config/polybar/colors.ini b/dotfiles/config/polybar/colors.ini new file mode 100644 index 0000000..4c6fa9f --- /dev/null +++ b/dotfiles/config/polybar/colors.ini @@ -0,0 +1,15 @@ +[color] + +;; Use pywal.sh in scripts directory to use colors from an image/wallpaper. + +;; main colors +background = #AA111111 +foreground = #CCCCCC +foreground-alt = #FFFFFF +alpha = #00000000 + +;; shades +shade1 = #AAFFFFFF +shade2 = #AAFF0000 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dotfiles/config/polybar/config-small.ini b/dotfiles/config/polybar/config-small.ini new file mode 100644 index 0000000..0a95e22 --- /dev/null +++ b/dotfiles/config/polybar/config-small.ini @@ -0,0 +1,297 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# config-small.ini :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2024/08/28 20:38:59 by tomoron #+# #+# # +# Updated: 2024/09/30 16:01:08 by tomoron ### ########.fr # +# # +# **************************************************************************** # + +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ~/.config/polybar/colors.ini +include-file = ~/.config/polybar/modules.ini +include-file = ~/.config/polybar/user_modules.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = ${env:MONITOR:} + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = false + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 40 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0 +offset-y = 0 + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.alpha} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.foreground} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; Value used for drawing rounded corners +; Note: This shouldn't be used together with border-size because the border +; doesn't get rounded +; Individual top/bottom values can be defined using: +; radius-{top,bottom} +radius-top = 0.0 +radius-bottom = 0.0 + +; Under-/overline pixel size and argb color +; Individual values can be defined using: +; {overline,underline}-size +; {overline,underline}-color +underline-size = 2 +underline-color = ${color.foreground} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-size = 0 +border-color = ${color.background} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 0 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 0 +module-margin-right = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Fonts are defined using ; +; Font names are specified using a fontconfig pattern. +; font-0 = NotoSans-Regular:size=8;2 +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +font-0 = "Iosevka Nerd Font:style=Bold:pixelsize=13;4" +font-1 = "Iosevka Nerd Font:style=Bold:pixelsize=15;4" +font-2 = "Iosevka Nerd Font:style=Bold:pixelsize=15;4" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbacklight +; modules-right = ipc clock + +modules-left = workspaces space mpris +modules-center = +modules-right = fans dgpu memory sep filesystem sep cpu sep temperature sep pulseaudio sep battery sep network sep date + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; The separator will be inserted between the output of each module +separator = + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = none + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.background} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 0 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +;;wm-restack = + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = +scroll-down = +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +;throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = false + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +;format-foreground = +;format-background = +;format-underline = +;format-overline = +;format-spacing = +;format-padding = +;format-margin = +;format-offset = + +; Enables pseudo-transparency for the bar +; If set to true the bar can be transparent without a compositor. +pseudo-transparency = false + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dotfiles/config/polybar/config.ini b/dotfiles/config/polybar/config.ini new file mode 100644 index 0000000..3b07957 --- /dev/null +++ b/dotfiles/config/polybar/config.ini @@ -0,0 +1,297 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# config.ini :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2024/08/28 20:38:59 by tomoron #+# #+# # +# Updated: 2024/09/28 02:47:34 by tomoron ### ########.fr # +# # +# **************************************************************************** # + +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ~/.config/polybar/colors.ini +include-file = ~/.config/polybar/modules.ini +include-file = ~/.config/polybar/user_modules.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = ${env:MONITOR:} + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = false + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 40 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0 +offset-y = 0 + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.alpha} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.foreground} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; Value used for drawing rounded corners +; Note: This shouldn't be used together with border-size because the border +; doesn't get rounded +; Individual top/bottom values can be defined using: +; radius-{top,bottom} +radius-top = 0.0 +radius-bottom = 0.0 + +; Under-/overline pixel size and argb color +; Individual values can be defined using: +; {overline,underline}-size +; {overline,underline}-color +underline-size = 2 +underline-color = ${color.foreground} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-size = 0 +border-color = ${color.background} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 0 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 0 +module-margin-right = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Fonts are defined using ; +; Font names are specified using a fontconfig pattern. +; font-0 = NotoSans-Regular:size=8;2 +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +font-0 = "Iosevka Nerd Font:style=Bold:pixelsize=16;4" +font-1 = "Iosevka Nerd Font:style=Bold:pixelsize=18;4" +font-2 = "Iosevka Nerd Font:style=Bold:pixelsize=18;4" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbacklight +; modules-right = ipc clock + +modules-left = workspaces space mpris +modules-center = +modules-right = fans dgpu memory sep filesystem sep cpu sep temperature sep pulseaudio sep battery sep network sep date + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; The separator will be inserted between the output of each module +separator = + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = none + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.background} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 0 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +;;wm-restack = + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = +scroll-down = +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +;throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = false + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +;format-foreground = +;format-background = +;format-underline = +;format-overline = +;format-spacing = +;format-padding = +;format-margin = +;format-offset = + +; Enables pseudo-transparency for the bar +; If set to true the bar can be transparent without a compositor. +pseudo-transparency = false + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dotfiles/config/polybar/modules.ini b/dotfiles/config/polybar/modules.ini new file mode 100644 index 0000000..f935f8a --- /dev/null +++ b/dotfiles/config/polybar/modules.ini @@ -0,0 +1,636 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# modules.ini :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2024/08/28 20:38:49 by tomoron #+# #+# # +# Updated: 2024/09/30 16:01:01 by tomoron ### ########.fr # +# # +# **************************************************************************** # + +[module/mpris] +type = custom/script +exec-if = playerctl metadata +exec = playerctl metadata --format '{{ playerName }}:{{ artist }} - {{title}}' +interval = 1 +interval-if = 1 + +[module/dgpu] +type = custom/script +exec-if = test "$(supergfxctl -g)" = "Hybrid" +exec = echo " on |" +format-padding=1 +interval-if = 10 +interval = 100 + +[module/fans] +type = custom/script +exec-if = test "$(cat /sys/class/hwmon/hwmon6/fan1_input)" -gt 0 -o "$(cat /sys/class/hwmon/hwmon6/fan2_input)" -gt 0 +exec = echo " " "$(cat /sys/class/hwmon/hwmon6/fan1_input).$(cat /sys/class/hwmon/hwmon6/fan2_input) |" +interval = 1 +interval-if = 1 + +[module/pulseaudio] +type = internal/pulseaudio + +; Soundcard to be used +; Usually in the format hw:# where # is the card number +; You can find the different card numbers in `/proc/asound/cards` +master-soundcard = default +speaker-soundcard = default +headphone-soundcard = default + +; Name of the master, speaker and headphone mixers +; Use the following command to list available mixer controls: +; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p" +; If master, speaker or headphone-soundcard isn't the default, +; use `amixer -c # scontrols` instead where # is the number +; of the master, speaker or headphone soundcard respectively +; +; Default: Master +master-mixer = Master + +; Optionally define speaker and headphone mixers +; Default: none +;;speaker-mixer = Speaker +; Default: none +;;headphone-mixer = Headphone + +; NOTE: This is required if headphone_mixer is defined +; Use the following command to list available device controls +; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort +; You may also need to use `amixer -c # controls` as above for the mixer names +; Default: none +;;headphone-id = 9 + +; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear +; Default: false +;;mapped = true + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; (default) +; +; (default) +; +; +format-muted = "" +format-muted-prefix = "󰝟 " +format-muted-prefix-font = 2 +format-muted-padding = 1 + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +label-muted = " M" +label-muted-foreground = ${color.foreground} + +; Only applies if is used +ramp-volume-0 = "" +ramp-volume-1 = "" +ramp-volume-2 = " " +ramp-volume-font = 2 + +; If defined, it will replace when +; headphones are plugged in to `headphone_control_numid` +; If undefined, will be used for both +; Only applies if is used +ramp-headphones-0 =  + +[module/battery] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 100 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = BAT0 +adapter = AC0 + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; (default) +; +; +; +format-charging = "󰂄 " +format-charging-padding = 1 + +; Available tags: +; (default) +; +; +; +format-discharging = " " +format-discharging-padding = 1 + +; Available tags: +; (default) +; +; +format-full = +format-full-prefix = " " +format-full-prefix-font = 2 +format-full-padding = 2 + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) +label-charging = %percentage%% %time% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% %time% + +; Available tokens: +; %percentage% (default) +label-full = " Full" + +; Only applies if is used +ramp-capacity-0 = " " +ramp-capacity-1 = " " +ramp-capacity-2 = " " +ramp-capacity-3 = " " +ramp-capacity-4 = " " +ramp-capacity-font = 2 + +; Only applies if is used +;bar-capacity-width = 10 + +; Only applies if is used +animation-charging-0 = "󰂇 " +animation-charging-1 = "󰢝 " +animation-charging-2 = "󰂉 " +animation-charging-3 = "󰂋 " +animation-charging-4 = "󰂅 " +animation-charging-font = 2 + +; Framerate in milliseconds +animation-charging-framerate = 750 + +; Only applies if is used +;;animation-discharging-0 = ${battery.anim0} +;;animation-discharging-1 = ${battery.anim1} + +; Framerate in milliseconds +;animation-discharging-framerate = 500 + +; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 1 + +; Available tags: +;