initial commit

This commit is contained in:
2024-10-16 19:11:15 +02:00
commit 6da0038f5d
39 changed files with 5141 additions and 0 deletions

57
configuration.nix Normal file
View File

@ -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?
}

29
dotfiles/bashrc Normal file
View File

@ -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"

View File

@ -0,0 +1,8 @@
[window]
opacity = 0.90
[env]
XTERM = "xterm-256color"
[font]
size = 12

40
dotfiles/config/bspwm/bspwmrc Executable file
View File

@ -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)&

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@ -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

View File

@ -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;

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

View File

@ -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 <leader>ff <cmd>Telescope find_files<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fb <cmd>Telescope buffers<cr>
nnoremap <leader>fh <cmd>Telescope help_tags<cr>

View File

@ -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 <F1> :Stdheader<CR>
autocmd BufWritePre * call s:update ()

View File

@ -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
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

View File

@ -0,0 +1,297 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# config-small.ini :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# 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-name>;<vertical-offset>
; 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
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

View File

@ -0,0 +1,297 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# config.ini :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# 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-name>;<vertical-offset>
; 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
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

View File

@ -0,0 +1,636 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# modules.ini :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# 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:
; <label-volume> (default)
; <ramp-volume>
; <bar-volume
format-volume = "<ramp-volume> <label-volume>"
format-volume-padding = 1
; Available tags:
; <label-muted> (default)
; <ramp-volume>
; <bar-volume>
format-muted = "<label-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 <ramp-volume> is used
ramp-volume-0 = ""
ramp-volume-1 = ""
ramp-volume-2 = " "
ramp-volume-font = 2
; If defined, it will replace <ramp-volume> when
; headphones are plugged in to `headphone_control_numid`
; If undefined, <ramp-volume> will be used for both
; Only applies if <ramp-volume> 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:
; <label-charging> (default)
; <bar-capacity>
; <ramp-capacity>
; <animation-charging>
format-charging = "󰂄 <label-charging>"
format-charging-padding = 1
; Available tags:
; <label-discharging> (default)
; <bar-capacity>
; <ramp-capacity>
; <animation-discharging>
format-discharging = "<ramp-capacity> <label-discharging>"
format-discharging-padding = 1
; Available tags:
; <label-full> (default)
; <bar-capacity>
; <ramp-capacity>
format-full = <label-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 <ramp-capacity> is used
ramp-capacity-0 = " "
ramp-capacity-1 = " "
ramp-capacity-2 = " "
ramp-capacity-3 = " "
ramp-capacity-4 = " "
ramp-capacity-font = 2
; Only applies if <bar-capacity> is used
;bar-capacity-width = 10
; Only applies if <animation-charging> 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 <animation-discharging> 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:
; <label> (default)
; <bar-load>
; <ramp-load>
; <ramp-coreload>
;;format = <label> <ramp-coreload>
format = <label>
format-prefix = " "
format-prefix-font = 2
format-foreground = ${color.foreground}
format-padding = 1
; Available tokens:
; %percentage% (default) - total cpu load averaged over all cores
; %percentage-sum% - Cumulative load on all cores
; %percentage-cores% - load percentage for each core
; %percentage-core[1-9]% - load percentage for specific core
label = " %percentage%%"
; Spacing between individual per-core ramps
;;ramp-coreload-spacing = 1
;;ramp-coreload-0 = ${cpu.load0}
;;ramp-coreload-1 = ${cpu.load1}
;;ramp-load-0 = ${cpu.load0}
;;ramp-load-1 = ${cpu.load1}
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
[module/date]
type = internal/date
; Seconds to sleep between updates
interval = 1.0
; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string
; NOTE: if you want to use syntax tags here you need to use %%{...}
;;date = %Y-%m-%d%
; Optional time format
time = " %H:%M:%S"
; if `date-alt` or `time-alt` is defined, clicking
; the module will toggle between formats
;;date-alt = %A, %d %B %Y
time-alt = " %a, %d %b %Y"
; Available tags:
; <label> (default)
format = <label>
format-prefix = " "
format-prefix-font = 2
format-foreground = ${color.foreground}
format-padding = 1
; Available tokens:
; %date%
; %time%
; Default: %date%
label = %time%
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
[module/filesystem]
type = internal/fs
; Mountpoints to display
mount-0 = /
;;mount-1 = /home
;;mount-2 = /var
; Seconds to sleep between updates
; Default: 30
interval = 30
; Display fixed precision values
; Default: false
fixed-values = true
; Spacing between entries
; Default: 2
;;spacing = 4
; Available tags:
; <label-mounted> (default)
; <bar-free>
; <bar-used>
; <ramp-capacity>
format-mounted = <label-mounted>
format-mounted-prefix = 󰋊
format-mounted-prefix-font = 2
format-mounted-padding = 2
; Available tokens:
; %mountpoint%
; %type%
; %fsname%
; %percentage_free%
; %percentage_used%
; %total%
; %free%
; %used%
; Default: %mountpoint% %percentage_free%%
label-mounted = " %percentage_used%%"
; Available tokens:
; %mountpoint%
; Default: %mountpoint% is not mounted
label-unmounted = " %mountpoint%: not mounted"
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
[module/memory]
type = internal/memory
; Seconds to sleep between updates
; Default: 1
interval = 1
; Available tags:
; <label> (default)
; <bar-used>
; <bar-free>
; <ramp-used>
; <ramp-free>
; <bar-swap-used>
; <bar-swap-free>
; <ramp-swap-used>
; <ramp-swap-free>
format = <label>
format-prefix =
format-prefix-font = 2
format-padding = 1
; Available tokens:
; %percentage_used% (default)
; %percentage_free%
; %gb_used%
; %gb_free%
; %gb_total%
; %mb_used%
; %mb_free%
; %mb_total%
; %percentage_swap_used%
; %percentage_swap_free%
; %mb_swap_total%
; %mb_swap_free%
; %mb_swap_used%
; %gb_swap_total%
; %gb_swap_free%
; %gb_swap_used%
label = " %percentage_used%%"
; Only applies if <ramp-used> is used
;;ramp-used-0 = ${memory.used0}
;;ramp-used-1 = ${memory.used1}
;;ramp-used-2 = ${memory.used2}
; Only applies if <ramp-free> is used
;;ramp-free-0 = ${memory.free0}
;;ramp-free-1 = ${memory.free1}
;;ramp-free-2 = ${memory.free2}
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
; If you use both a wired and a wireless network, just add 2 module definitions. For example
[module/network]
type = internal/network
interface = wlan0
; Seconds to sleep between updates
; Default: 1
interval = 1.0
; Test connectivity every Nth update
; A value of 0 disables the feature
; NOTE: Experimental (needs more testing)
; Default: 0
;ping-interval = 3
; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%)
; Minimum output width of upload/download rate
; Default: 3
;;udspeed-minwidth = 5
; Accumulate values from all interfaces
; when querying for up/downspeed rate
; Default: false
accumulate-stats = true
; Consider an `UNKNOWN` interface state as up.
; Some devices have an unknown state, even when they're running
; Default: false
unknown-as-up = true
; Available tags:
; <label-connected> (default)
; <ramp-signal>
format-connected = "<ramp-signal><label-connected>"
format-connected-prefix = ""
format-connected-prefix-font = 2
format-connected-padding = 1
; Available tags:
; <label-disconnected> (default)
format-disconnected = <label-disconnected>
format-disconnected-prefix = "󱚼 "
format-disconnected-prefix-font = 2
format-disconnected-padding = 1
; Available tags:
; <label-connected> (default)
; <label-packetloss>
; <animation-packetloss>
;;format-packetloss = <animation-packetloss> <label-connected>
; Available tokens:
; %ifname% [wireless+wired]
; %local_ip% [wireless+wired]
; %local_ip6% [wireless+wired]
; %essid% [wireless]
; %signal% [wireless]
; %upspeed% [wireless+wired]
; %downspeed% [wireless+wired]
; %linkspeed% [wired]
; Default: %ifname% %local_ip%
label-connected = "%{A1:networkmanager_dmenu &:} %essid%%{A}"
; Available tokens:
; %ifname% [wireless+wired]
; Default: (none)
label-disconnected = "%{A1:networkmanager_dmenu &:}%{A}"
;;label-disconnected-foreground = #66ffffff
; Available tokens:
; %ifname% [wireless+wired]
; %local_ip% [wireless+wired]
; %local_ip6% [wireless+wired]
; %essid% [wireless]
; %signal% [wireless]
; %upspeed% [wireless+wired]
; %downspeed% [wireless+wired]
; %linkspeed% [wired]
; Default: (none)
;label-packetloss = %essid%
;label-packetloss-foreground = #eefafafa
; Only applies if <ramp-signal> is used
ramp-signal-0 = "󰤟 "
ramp-signal-1 = "󰤢 "
ramp-signal-2 = "󰤨 "
; Only applies if <animation-packetloss> is used
;;animation-packetloss-0 = ⚠
;;animation-packetloss-0-foreground = #ffa64c
;;animation-packetloss-1 = ⚠
;;animation-packetloss-1-foreground = #000000
; Framerate in milliseconds
;;animation-packetloss-framerate = 500
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
[module/temperature]
type = internal/temperature
; Seconds to sleep between updates
; Default: 1
interval = 1
; Thermal zone to use
; To list all the zone types, run
; $ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done
; Default: 0
thermal-zone = 0
; Full path of temperature sysfs path
; Use `sensors` to find preferred temperature source, then run
; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done
; to find path to desired file
; Default reverts to thermal zone setting
;;hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input
hwmon-path = /sys/devices/virtual/thermal/thermal_zone0/hwmon1/temp1_input
; Threshold temperature to display warning label (in degrees celsius)
; Default: 80
warn-temperature = 80
; Whether or not to show units next to the temperature tokens (°C, °F)
; Default: true
units = true
; Available tags:
; <label> (default)
; <ramp>
format = "<ramp> <label>"
format-padding = 1
; Available tags:
; <label-warn> (default)
; <ramp>
format-warn = "<ramp> <label-warn>"
format-warn-foreground = #FF0000
format-warn-padding = 1
; Available tokens:
; %temperature% (deprecated)
; %temperature-c% (default, temperature in °C)
; %temperature-f% (temperature in °F)
label = %temperature-c%
; Available tokens:
; %temperature% (deprecated)
; %temperature-c% (default, temperature in °C)
; %temperature-f% (temperature in °F)
label-warn = "%temperature-c%"
; Requires the <ramp> tag
; The icon selection will range from 0 to `warn-temperature`
; with the current temperature as index.
ramp-0 = ""
ramp-1 = ""
ramp-2 = ""
ramp-3 = ""
ramp-4 = ""
ramp-font = 2
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
[module/workspaces]
type = internal/xworkspaces
; Only show workspaces defined on the same output as the bar
;
; Useful if you want to show monitor specific workspaces
; on different bars
;
; Default: false
pin-workspaces = false
; Create click handler used to focus desktop
; Default: true
enable-click = true
; Create scroll handlers used to cycle desktops
; Default: true
enable-scroll = false
; icon-[0-9]+ = <desktop-name>;<icon>
; NOTE: The desktop name needs to match the name configured by the WM
; You can get a list of the defined desktops using:
; $ xprop -root _NET_DESKTOP_NAMES
icon-0 = 1;1
icon-1 = 2;2
icon-2 = 3;3
icon-3 = 4;4
icon-4 = 5;5
icon-5 = A;A
icon-6 = B;B
icon-default = 0
; Available tags:
; <label-monitor>
; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)>
; Default: <label-state>
format = <label-state>
format-font = 3
format-background = #0000FF
format-foreground = #FF0000
; Available tokens:
; %name%
; Default: %name%
label-monitor = %name%
; Available tokens:
; %name%
; %icon%
; %index%
; Default: %icon% %name%
label-active = %icon%
label-active-background = #44ffffff
label-active-foreground = #00FF00
; Available tokens:
; %name%
; %icon%
; %index%
; Default: %icon% %name%
label-occupied = %icon%
label-occupied-background = #00FFFFFF
label-occupied-foreground = #00FF00
; Available tokens:
; %name%
; %icon%
; %index%
; Default: %icon% %name%
label-urgent = %icon%
label-urgent-background = ${color.background}
label-urgent-foreground = #CC6666
; Available tokens:
; %name%
; %icon%
; %index%
; Default: %icon% %name%
label-empty = %icon%
label-empty-background = #0000FFFF
label-empty-foreground = #FFFFFF
label-active-padding = 1.85
label-urgent-padding = 1.85
label-occupied-padding = 1.85
label-empty-padding = 1.85
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
PATH = "/var/lib/flatpak/exports/bin:$PATH"
rofi -show drun -show-icons

View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
PATH="$HOME/.local/bin:$PATH"
rofi -show-icons -show run

View File

@ -0,0 +1,23 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# user_modules.ini :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/08/28 20:38:24 by tomoron #+# #+# #
# Updated: 2024/09/03 14:40:12 by tomoron ### ########.fr #
# #
# **************************************************************************** #
[module/sep]
type = custom/text
content = "|"
content-foreground = #FFFFFF
[module/space]
type = custom/text
content = " "
content-padding=1

165
dotfiles/config/sxhkd/sxhkdrc Executable file
View File

@ -0,0 +1,165 @@
#
# wm independent hotkeys
#
# terminal emulator
super + Return
alacritty
# program launcher
super + d
/home/tom/.config/polybar/scripts/launcher.sh
super + shift + d
/home/tom/.config/polybar/scripts/launcher_bin.sh
# make sxhkd reload its configuration files:
super + Escape
pkill -USR1 -x sxhkd
#
# bspwm hotkeys
#
# quit/restart bspwm
super + alt + {q,r}
bspc {quit,wm -r}
# close and kill
control + alt + {_,shift + }q
bspc node -{c,k}
# alternate between the tiled and monocle layout
super + m
bspc desktop -l next
# send the newest marked node to the newest preselected node
super + y
bspc node newest.marked.local -n newest.!automatic.local
# swap the current node and the biggest window
super + g
bspc node -s biggest.window
#
# state/flags
#
# set the window state
super + {t,shift + t,s,f}
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
# set the node flags
super + ctrl + {m,x,y,z}
bspc node -g {marked,locked,sticky,private}
#
# focus/swap
#
# focus the node in the given direction
super + {_,shift + }{h,j,k,l}
bspc node -{f,s} {west,south,north,east}
# focus the node for the given path jump
super + {p,b,comma,period}
bspc node -f @{parent,brother,first,second}
# focus the next/previous window in the current desktop
super + {_,shift + }c
bspc node -f {next,prev}.local.!hidden.window
# focus the next/previous desktop in the current monitor
super + bracket{left,right}
bspc desktop -f {prev,next}.local
# focus the last node/desktop
super + {grave,Tab}
bspc {node,desktop} -f last
# focus the older or newer node in the focus history
super + {o,i}
bspc wm -h off; \
bspc node {older,newer} -f; \
bspc wm -h on
# focus or send to the given desktop
super + {_,shift + }{1-9,0}
bspc {desktop -f,node -d} '^{1-9,10}'
#
# preselect
#
# preselect the direction
super + ctrl + {h,j,k,l}
bspc node -p {west,south,north,east}
# preselect the ratio
super + ctrl + {1-9}
bspc node -o 0.{1-9}
# cancel the preselection for the focused node
super + ctrl + space
bspc node -p cancel
# cancel the preselection for the focused desktop
super + ctrl + shift + space
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
#
# move/resize
#
# expand a window by moving one of its side outward
super + alt + {h,j,k,l}
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
# contract a window by moving one of its side inward
super + alt + shift + {h,j,k,l}
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
# move a floating window
super + {Left,Down,Up,Right}
bspc node -v {-20 0,0 20,0 -20,20 0}
#Volume control
XF86AudioLowerVolume
pactl set-sink-volume @DEFAULT_SINK@ -5%
XF86AudioRaiseVolume
pactl set-sink-volume @DEFAULT_SINK@ +5%
XF86AudioMute
pactl set-sink-mute @DEFAULT_SINK@ toggle
XF86MonBrightnessUp
brightness up
XF86MonBrightnessDown
brightness down
XF86KbdBrightnessUp
kbd_brightness up
XF86KbdBrightnessDown
kbd_brightness down
#music control
super + shift + o
playerctl play-pause
super + shift + p
playerctl previous
super + shift + n
playerctl next
super + shift + alt + b
polybar-msg cmd hide
super + shift + b
polybar-msg cmd show

21
dotfiles/local/bin/brightness Executable file
View File

@ -0,0 +1,21 @@
#!/bin/bash
FILE=/sys/class/backlight/amdgpu_bl1/brightness
if ! ( test -w "$FILE" ); then
xterm +cm -cr RED -bg BLACK -selbg WHITE -selfg BLACK -fg WHITE -fa Monospace -fs 14 -e "sudo chmod 777 $FILE"
fi
new=$(cat $FILE)
if [ "$1" = "up" ]; then
new=$((new + 13))
elif [ "$1" = "down" ];then
new=$((new - 13))
fi
if [ $new -gt 255 ]; then
new=255
elif [ $new -lt 0 ]; then
new=0
fi
echo $new > $FILE

3
dotfiles/local/bin/desk_sync Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
unison /home/tom/Desktop ssh://tom@tmoron.fr:1880//home/tom/Desktop_sync/Desktop $@

2
dotfiles/local/bin/hibernate Executable file
View File

@ -0,0 +1,2 @@
xtrlock&
systemctl hibernate

View File

@ -0,0 +1,6 @@
#!/bin/bash
if [ "$1" = "up" ]; then
asusctl -n
elif [ "$1" = "down" ];then
asusctl -p
fi

4
dotfiles/local/bin/scan Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
until sudo iwctl station wlan0 show | grep iPhone > /dev/null;do
sudo iwctl station wlan0 scan 2>&1 > /dev/null
done

File diff suppressed because it is too large Load Diff

20
dotfiles/vimrc Normal file
View File

@ -0,0 +1,20 @@
let g:python_recommended_style = 0
set number
set ai
autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent! loadview
set noexpandtab
set tabstop=4
set shiftwidth=4
set scrolloff=10
set preserveindent
map <silent> <C-N> :bnext<CR>
map <silent> <C-P> :bprevious<CR>
nmap <silent> <c-k> :wincmd k<CR>
nmap <silent> <c-j> :wincmd j<CR>
nmap <silent> <c-h> :wincmd h<CR>
nmap <silent> <c-l> :wincmd l<CR>
set hidden
set path +=**
set wildmenu
set wildignore+=**/node_modules/**

1
dotfiles/xinitrc Executable file
View File

@ -0,0 +1 @@
exec bspwm

48
flake.lock generated Normal file
View File

@ -0,0 +1,48 @@
{
"nodes": {
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1728306985,
"narHash": "sha256-l/KpcWTv2SjxCnqFs5GYhvjeVYd40WQV4/F2+w9btd4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "3ac39b2a8b7cbfc0f96628d8a84867c885bc988b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1728018373,
"narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "bc947f541ae55e999ffdb4013441347d83b00feb",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

79
flake.nix Normal file
View File

@ -0,0 +1,79 @@
{
description = "Nixos and home-manager config flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, home-manager, ... }@inputs:
let
pkgs = nixpkgs.legacyPackages."x86_64-linux";
username="tom";
homeDir="/home/tom";
in {
#NIXOS CONFIG
nixosConfigurations = {
default = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hardware-configuration.nix
./configuration.nix
];
};
vbox = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hardware-configuration.nix
./configuration.nix
./hosts/vbox/configuration.nix
];
};
laptop = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hardware-configuration.nix
./configuration.nix
./hosts/laptop/configuration.nix
];
};
};
#HOME CONFIG
homeConfigurations = {
${username} = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
username = "${username}";
homeDir = "${homeDir}";
};
modules = [ ./home.nix ];
};
vbox = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
username = "${username}";
homeDir = "${homeDir}";
};
modules = [
./home.nix
./homes/vbox.nix
];
};
ft = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
username = "tomoron";
homeDir = "/nfs/homes/tomoron";
};
modules = [
./home.nix
./homes/ft/ft.nix
];
};
};
};
}

83
home.nix Normal file
View File

@ -0,0 +1,83 @@
{ config, lib, pkgs, username,homeDir, ... }:
{
home.username = "${username}";
home.homeDirectory = "${homeDir}";
home.stateVersion = "24.05";
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = with pkgs;[
polybar
sxhkd
alacritty
nitrogen
nerdfonts
rofi
firefox
neovim
activate-linux
bspwm
dunst
];
home.file = {
# ".screenrc".source = dotfiles/screenrc;
".config/bspwm/bspwmrc".source = lib.mkDefault dotfiles/config/bspwm/bspwmrc;
".config/sxhkd".source = lib.mkDefault dotfiles/config/sxhkd;
".config/polybar".source = dotfiles/config/polybar;
".config/nitrogen".source = lib.mkDefault dotfiles/config/nitrogen;
".config/alacritty".source = dotfiles/config/alacritty;
".config/nvim/init.vim".source = dotfiles/config/nvim/init.vim;
".config/nvim/plugin/stdheader.vim".source = dotfiles/config/nvim/plugin/stdheader.vim;
".local/share/nvim/site/autoload/plug.vim".source = dotfiles/local/share/nvim/site/autoload/plug.vim;
".xinitrc".source = dotfiles/xinitrc;
".vimrc".source = dotfiles/vimrc;
".bashrc".source = dotfiles/bashrc;
# ".gradle/gradle.properties".text = ''
# org.gradle.daemon.idletimeout=3600000
# '';
};
programs.git = {
enable = true;
userEmail = "tomoron@student.42angouleme.fr";
userName = "tomoron";
extraConfig.init.defaultBranch="master";
aliases = {
fuck = "!f() { git reset --hard \"@{upstream}\" && git restore . && git clean -f .; };f";
back = "reset HEAD~";
};
};
services.picom = {
enable = true;
backend = lib.mkDefault "glx";
vSync = true;
settings = {
blur = {
method = lib.mkDefault "gaussian";
size = lib.mkDefault 20;
deviation = lib.mkDefault 5.0;
};
corner-radius=20;
rounded-corners-exclude = [
"window_type = 'dock'"
"class_g = 'Dunst'"
];
blur-background-exclude = [
"class_g = 'activate-linux'"
];
};
};
home.sessionVariables = {
EDITOR = "nvim";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

View File

@ -0,0 +1,25 @@
#! /bin/sh
pgrep -x sxhkd > /dev/null || sxhkd &
bspc monitor -d 1 2 3 4 5
bspc desktop 1 -f
pgrep -x polybar || polybar -q main -c "$HOME/.config/polybar/config-small.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 --experimental-backends &
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)&

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@ -0,0 +1,4 @@
[xin_-1]
file=/nfs/homes/tomoron/.config/nitrogen/thumb-1920-814854.png
mode=0
bgcolor=#000000

View File

@ -0,0 +1,12 @@
[geometry]
posx=-1
posy=-1
sizex=450
sizey=500
[nitrogen]
view=icon
recurse=true
sort=alpha
icon_caps=false
dirs=/nfs/homes/tomoron/.config/nitrogen;

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

View File

@ -0,0 +1,165 @@
#
# wm independent hotkeys
#
# terminal emulator
super + Return
alacritty
# program launcher
super + d
dmenu_run
super + shift + d
dmenu_run
# make sxhkd reload its configuration files:
super + Escape
pkill -USR1 -x sxhkd
#
# bspwm hotkeys
#
# quit/restart bspwm
super + alt + {q,r}
bspc {quit,wm -r}
# close and kill
control + alt + {_,shift + }q
bspc node -{c,k}
# alternate between the tiled and monocle layout
super + m
bspc desktop -l next
# send the newest marked node to the newest preselected node
super + y
bspc node newest.marked.local -n newest.!automatic.local
# swap the current node and the biggest window
super + g
bspc node -s biggest.window
#
# state/flags
#
# set the window state
super + {t,shift + t,s,f}
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
# set the node flags
super + ctrl + {m,x,y,z}
bspc node -g {marked,locked,sticky,private}
#
# focus/swap
#
# focus the node in the given direction
super + {_,shift + }{h,j,k,l}
bspc node -{f,s} {west,south,north,east}
# focus the node for the given path jump
super + {p,b,comma,period}
bspc node -f @{parent,brother,first,second}
# focus the next/previous window in the current desktop
super + {_,shift + }c
bspc node -f {next,prev}.local.!hidden.window
# focus the next/previous desktop in the current monitor
super + bracket{left,right}
bspc desktop -f {prev,next}.local
# focus the last node/desktop
super + {grave,Tab}
bspc {node,desktop} -f last
# focus the older or newer node in the focus history
super + {o,i}
bspc wm -h off; \
bspc node {older,newer} -f; \
bspc wm -h on
# focus or send to the given desktop
super + {_,shift + }{1-9,0}
bspc {desktop -f,node -d} '^{1-9,10}'
#
# preselect
#
# preselect the direction
super + ctrl + {h,j,k,l}
bspc node -p {west,south,north,east}
# preselect the ratio
super + ctrl + {1-9}
bspc node -o 0.{1-9}
# cancel the preselection for the focused node
super + ctrl + space
bspc node -p cancel
# cancel the preselection for the focused desktop
super + ctrl + shift + space
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
#
# move/resize
#
# expand a window by moving one of its side outward
super + alt + {h,j,k,l}
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
# contract a window by moving one of its side inward
super + alt + shift + {h,j,k,l}
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
# move a floating window
super + {Left,Down,Up,Right}
bspc node -v {-20 0,0 20,0 -20,20 0}
#Volume control
XF86AudioLowerVolume
pactl set-sink-volume @DEFAULT_SINK@ -5%
XF86AudioRaiseVolume
pactl set-sink-volume @DEFAULT_SINK@ +5%
XF86AudioMute
pactl set-sink-mute @DEFAULT_SINK@ toggle
XF86MonBrightnessUp
brightness up
XF86MonBrightnessDown
brightness down
XF86KbdBrightnessUp
kbd_brightness up
XF86KbdBrightnessDown
kbd_brightness down
#music control
super + shift + o
playerctl play-pause
super + shift + p
playerctl previous
super + shift + n
playerctl next
super + shift + alt + b
polybar-msg cmd hide
super + shift + b
polybar-msg cmd show

14
homes/ft/ft.nix Normal file
View File

@ -0,0 +1,14 @@
{ config, lib, pkgs, username,homeDir, ... }:
{
home.packages = with pkgs;[
neovim
dmenu
];
home.file = {
".config/sxhkd".source = dotfiles/config/sxhkd;
".config/nitrogen".source = dotfiles/config/nitrogen;
".config/bspwm/bspwmrc".source = dotfiles/config/bspwm/bspwmrc;
};
}

14
homes/vbox.nix Normal file
View File

@ -0,0 +1,14 @@
{ config, lib, pkgs, ... }:
{
services.picom = {
backend = "xrender";
settings = {
blur = {
method = "none";
size = 0;
deviation = 0.0;
};
};
};
}

View File

@ -0,0 +1,12 @@
{ config, lib, inputs, pkgs, ... }:
{
networking.hostName = "patate-douce";
networking.wireless.enable = true;
networking.networkmanager.enable = false;
environment.systemPackages = with pkgs; [
acpi
]
}

View File

@ -0,0 +1,6 @@
{ config, lib, inputs, pkgs, ... }:
{
virtualisation.virtualbox.guest.enable = true;
}