continue refactor, home modules are actual modules and remove some useless files

This commit is contained in:
2025-02-10 05:28:31 +01:00
parent 5363e26357
commit acc21888b9
133 changed files with 1541 additions and 1563 deletions

View File

@ -0,0 +1,2 @@
#! /bin/sh

View File

@ -0,0 +1,246 @@
# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
# Please note not all available settings / options are set here.
# For a full list, see the wiki
# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1, 1920x1080@120, 0x0, 1
monitor=HDMI-A-1, 1920x1080@60, auto, auto
exec-once = swaybg -i ~/.config/nitrogen/wallpaper.png&
exec-once = (sleep 2;activate-linux -c 1-1-1-0.7 -V 50 -H 50 -d)&
exec-once = waybar&
exec-once = alacritty&
###################
### MY PROGRAMS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
# Set programs that you use
$terminal = alacritty
$menu = rofi -show drun -show-icons
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hyprland.org/Configuring/Environment-variables/
env = HYPRCURSOR_SIZE,17
env = HYPRCURSOR_THEME,bibata-modern-classic
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 3
gaps_out = 7
border_size = 2
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 10
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
drop_shadow = true
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
enabled = true
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = easeInOut, 0.77, 0, 0.175, 1
bezier = easeOut, 0.24, 0.66, 0.04, 1
animation = windows, 1, 2, easeInOut
animation = windowsIn, 1, 2, easeInOut, slide
animation = windowsOut, 1, 2, easeInOut, slide
animation = fade, 1, 2, easeInOut
animation = workspaces, 1, 2, easeOut
}
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
force_default_wallpaper = 1
disable_hyprland_logo = true
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = fr
kb_variant = us
follow_mouse = 2
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = false
}
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
###################
### KEYBINDINGS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds
bind = $mainMod, Return, exec, $terminal
bind = CTRL_ALT, Q, killactive,
bind = SUPER_ALT, Q, exit,
bind = $mainMod, S, togglefloating,
bind = $mainMod, D, exec, $menu
bind = $mainMod, M, fullscreen
# Move focus
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
#swap windows
bind = $mainMod SHIFT, h, swapwindow, l
bind = $mainMod SHIFT, l, swapwindow, r
bind = $mainMod SHIFT, k, swapwindow, u
bind = $mainMod SHIFT, j, swapwindow, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
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
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
# lock
bindl = , XF86Launch1, exec, hyprlock
##############################
### WINDOWS AND WORKSPACES ###
##############################
# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0

View File

@ -0,0 +1,23 @@
general{
no_fade_out = true
ignore_empty_input = false
}
background {
monitor =
path = ~/.config/nitrogen/wallpaper.png
blur_passes = 1
}
input-field {
monitor =
size=300, 50
dot_size = 0.2
dots_fade_time = 100
inner_color = rgb(139,89,100)
outer_color = rgb(139,89,100)
outline_thickness = 1
fail_transition = 300
fail_text = learn to write, idiot
}

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

View File

@ -0,0 +1,31 @@
source ~/.vimrc
let mapleader=";"
autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
\| PlugInstall --sync
\| endif
call plug#begin('~/.config/nvim/plugged')
Plug 'bling/vim-bufferline'
Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-telescope/telescope.nvim'
Plug 'andweeb/presence.nvim'
Plug 'neovim/nvim-lspconfig'
Plug 'bluz71/vim-nightfly-colors'
Plug 'catppuccin/nvim', { 'as': 'catppuccin' }
call plug#end()
colorscheme catppuccin-mocha
lua require'lspconfig'.clangd.setup{}
lua require'lspconfig'.nixd.setup{}
set signcolumn=no
let g:user42 = 'tomoron'
let g:mail42 = 'tomoron@student.42angouleme.fr'
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,152 @@
[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/dgpu]
type = custom/script
exec-if = test "$(supergfxctl -g)" = "Hybrid"
exec = echo " on |"
format-padding=1
interval-if = 10
interval = 100
[module/memory]
type = internal/memory
interval = 1
format = <label>
format-prefix =
format-prefix-font = 2
format-padding = 1
label = " %percentage_used%%"
[module/filesystem]
type = internal/fs
mount-0 = /
interval = 30
fixed-values = true
format-mounted = <label-mounted>
format-mounted-prefix = 󰋊
format-mounted-prefix-font = 2
format-mounted-padding = 2
label-mounted = " %percentage_used%%"
label-unmounted = " %mountpoint%: not mounted"
[module/cpu]
type = internal/cpu
interval = 1
format = <label>
format-prefix = " "
format-prefix-font = 2
format-foreground = ${color.foreground}
format-padding = 1
label = " %percentage%%"
[module/temperature]
type = internal/temperature
interval = 1
thermal-zone = 0
hwmon-path = /sys/devices/virtual/thermal/thermal_zone0/temp
warn-temperature = 80
units = true
format = "<ramp> <label>"
format-padding = 1
format-warn = "<ramp> <label-warn>"
format-warn-foreground = #FF0000
format-warn-padding = 1
label = %temperature-c%
label-warn = "%temperature-c%"
ramp-0 = ""
ramp-1 = ""
ramp-2 = ""
ramp-3 = ""
ramp-4 = ""
ramp-font = 2
[module/sep]
type = custom/text
content = "|"
content-foreground = #FFFFFF
[module/space]
type = custom/text
content = " "
content-padding=1
[module/network]
type = internal/network
interface = wlp2s0
interval = 1.0
accumulate-stats = true
unknown-as-up = true
format-connected = "<ramp-signal><label-connected>"
format-connected-prefix = ""
format-connected-prefix-font = 2
format-connected-padding = 1
format-disconnected = <label-disconnected>
format-disconnected-prefix = "󱚼 "
format-disconnected-prefix-font = 2
format-disconnected-padding = 1
label-connected = "%{A1:networkmanager_dmenu &:} %essid%%{A}"
label-disconnected = "%{A1:networkmanager_dmenu &:}%{A}"
ramp-signal-0 = "󰤟 "
ramp-signal-1 = "󰤢 "
ramp-signal-2 = "󰤨 "
[module/date]
type = internal/date
interval = 1.0
time = " %H:%M:%S"
time-alt = " %a, %d %b %Y"
format = <label>
format-prefix = " "
format-prefix-font = 2
format-foreground = ${color.foreground}
format-padding = 1
label = %time%
[module/workspaces]
type = internal/xworkspaces
pin-workspaces = false
enable-click = true
enable-scroll = false
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
format = <label-state>
format-font = 3
format-background = #0000FF
format-foreground = #FF0000
label-monitor = %name%
label-active = %icon%
label-active-background = #44ffffff
label-active-foreground = #00FF00
label-occupied = %icon%
label-occupied-background = #00FFFFFF
label-occupied-foreground = #00FF00
label-urgent = %icon%
label-urgent-background = ${color.background}
label-urgent-foreground = #CC6666
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
[module/mpris]
type = custom/script
exec-if = playerctl metadata
exec = playerctl metadata --format '{{ playerName }}:{{ artist }} - {{title}}'
interval = 1
interval-if = 1

View File

@ -0,0 +1,233 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# config-small.ini :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/08/28 20:38:59 by tomoron #+# #+# #
# Updated: 2025/02/10 02:50:15 by tomoron ### ########.fr #
# #
# **************************************************************************** #
[global/wm]
margin-bottom = 0
margin-top = 0
[color]
background = #AA111111
foreground = #CCCCCC
foreground-alt = #FFFFFF
alpha = #00000000
shade1 = #AAFFFFFF
shade2 = #AAFF0000
[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/dgpu]
type = custom/script
exec-if = test "$(supergfxctl -g)" = "Hybrid"
exec = echo " on |"
format-padding=1
interval-if = 10
interval = 100
[module/memory]
type = internal/memory
interval = 1
format = <label>
format-prefix =
format-prefix-font = 2
format-padding = 1
label = " %percentage_used%%"
[module/filesystem]
type = internal/fs
mount-0 = /
interval = 30
fixed-values = true
format-mounted = <label-mounted>
format-mounted-prefix = 󰋊
format-mounted-prefix-font = 2
format-mounted-padding = 2
label-mounted = " %percentage_used%%"
label-unmounted = " %mountpoint%: not mounted"
[module/cpu]
type = internal/cpu
interval = 1
format = <label>
format-prefix = " "
format-prefix-font = 2
format-foreground = ${color.foreground}
format-padding = 1
label = " %percentage%%"
[module/temperature]
type = internal/temperature
interval = 1
thermal-zone = 0
hwmon-path = /sys/devices/virtual/thermal/thermal_zone0/temp
warn-temperature = 80
units = true
format = "<ramp> <label>"
format-padding = 1
format-warn = "<ramp> <label-warn>"
format-warn-foreground = #FF0000
format-warn-padding = 1
label = %temperature-c%
label-warn = "%temperature-c%"
ramp-0 = ""
ramp-1 = ""
ramp-2 = ""
ramp-3 = ""
ramp-4 = ""
ramp-font = 2
[module/sep]
type = custom/text
content = "|"
content-foreground = #FFFFFF
[module/space]
type = custom/text
content = " "
content-padding=1
[module/network]
type = internal/network
interface = wlp2s0
interval = 1.0
accumulate-stats = true
unknown-as-up = true
format-connected = "<ramp-signal><label-connected>"
format-connected-prefix = ""
format-connected-prefix-font = 2
format-connected-padding = 1
format-disconnected = <label-disconnected>
format-disconnected-prefix = "󱚼 "
format-disconnected-prefix-font = 2
format-disconnected-padding = 1
label-connected = "%{A1:networkmanager_dmenu &:} %essid%%{A}"
label-disconnected = "%{A1:networkmanager_dmenu &:}%{A}"
ramp-signal-0 = "󰤟 "
ramp-signal-1 = "󰤢 "
ramp-signal-2 = "󰤨 "
[module/date]
type = internal/date
interval = 1.0
time = " %H:%M:%S"
time-alt = " %a, %d %b %Y"
format = <label>
format-prefix = " "
format-prefix-font = 2
format-foreground = ${color.foreground}
format-padding = 1
label = %time%
[module/workspaces]
type = internal/xworkspaces
pin-workspaces = false
enable-click = true
enable-scroll = false
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
format = <label-state>
format-font = 3
format-background = #0000FF
format-foreground = #FF0000
label-monitor = %name%
label-active = %icon%
label-active-background = #44ffffff
label-active-foreground = #00FF00
label-occupied = %icon%
label-occupied-background = #00FFFFFF
label-occupied-foreground = #00FF00
label-urgent = %icon%
label-urgent-background = ${color.background}
label-urgent-foreground = #CC6666
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
[module/mpris]
type = custom/script
exec-if = playerctl metadata
exec = playerctl metadata --format '{{ playerName }}:{{ artist }} - {{title}}'
interval = 1
interval-if = 1
include-file = ~/.config/polybar/modules.ini
include-file = ~/.config/polybar/user_modules.ini
[bar/main]
monitor = ${env:MONITOR:}
monitor-fallback =
monitor-strict = false
override-redirect = false
bottom = false
fixed-center = true
width = 100%
height = 40
offset-x = 0
offset-y = 0
background = ${color.alpha}
foreground = ${color.foreground}
radius-top = 0.0
radius-bottom = 0.0
underline-size = 2
underline-color = ${color.foreground}
border-size = 0
border-color = ${color.background}
padding = 0
module-margin-left = 0
module-margin-right = 0
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-left = workspaces space mpris
modules-center =
modules-right = fans dgpu memory sep filesystem sep cpu sep temperature sep polybar sep network sep date
separator =
dim-value = 1.0
tray-position = none
tray-detached = false
tray-maxsize = 16
tray-background = ${color.background}
tray-offset-x = 0
tray-offset-y = 0
tray-padding = 0
tray-scale = 1.0
enable-ipc = true
[settings]
throttle-output = 5
throttle-output-for = 10
screenchange-reload = false
compositing-background = source
compositing-foreground = over
compositing-overline = over
compositing-underline = over
compositing-border = over
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/11/08 16:44:40 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=12;4"
font-1 = "Iosevka Nerd Font:style=Bold:pixelsize=13;4"
font-2 = "Iosevka Nerd Font:style=Bold:pixelsize=13;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 polybar 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,132 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# modules.ini :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/08/28 20:38:49 by tomoron #+# #+# #
# Updated: 2025/02/10 01:59:55 by tomoron ### ########.fr #
# #
# **************************************************************************** #
[module/pulseaudio]
type = internal/pulseaudio
master-soundcard = default
speaker-soundcard = default
headphone-soundcard = default
master-mixer = Master
interval = 5
format-volume = "<ramp-volume> <label-volume>"
format-volume-padding = 1
format-muted = "<label-muted>"
format-muted-prefix = "󰝟 "
format-muted-prefix-font = 2
format-muted-padding = 1
label-volume = %percentage%%
label-muted = " M"
label-muted-foreground = ${color.foreground}
ramp-volume-0 = ""
ramp-volume-1 = ""
ramp-volume-2 = " "
ramp-volume-font = 2
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

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

View File

@ -0,0 +1,170 @@
#
# 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
~/.local/bin/brightness up
XF86MonBrightnessDown
~/.local/bin/brightness down
XF86KbdBrightnessUp
~/.local/bin/kbd_brightness up
XF86KbdBrightnessDown
~/.local/bin/kbd_brightness down
alt + F7
brightnessctl 10-
alt + F8
brightnessctl 10+
#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

View File

@ -0,0 +1,21 @@
#!/bin/sh
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

View File

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

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

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

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/**

85
homeConfigs/home.nix Normal file
View File

@ -0,0 +1,85 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# home.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/10/17 18:15:38 by tomoron #+# #+# #
# Updated: 2025/02/10 05:27:03 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{lib, pkgs, username,homeDir, ... }:
{
imports = lib.concatLists [
[ ./packages.nix ]
(lib.fileset.toList ./modules)
];
home.username = "${username}";
home.homeDirectory = "${homeDir}";
home.stateVersion = "24.05";
home.pointerCursor = {
gtk.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
size = 16;
};
gtk = {
enable = true;
theme = { package = pkgs.flat-remix-gtk; name = "Flat-Remix-GTK-Grey-Darkest"; };
iconTheme = { package = pkgs.adwaita-icon-theme; name = "Adwaita"; };
font = { name = "Sans"; size = 11; };
};
home.shellAliases = {
ls= "ls --color=auto";
grep = "grep --color=auto";
vim = "nvim";
vi = "nvim";
hl = "Hyprland";
clr = "clear";
tagueule = "asusctl profile -P Quiet";
parle = "asusctl profile -P performance";
};
programs.bash = {
enable = true;
historyControl = ["ignoreboth"];
historyIgnore = [ "ls" "cd" "exit" ];
shellOptions = [ "cdspell" "autocd"];
bashrcExtra = ''
cd() {
builtin cd "$@"
echo -n "$PWD" > ~/.last_directory
}
[ -z "\$${PS1:-}" ] && return
if [ -f ~/.last_directory ];then
echo -n going to
cat ~/.last_directory
echo
builtin cd "$(cat ~/.last_directory)"
fi
'';
};
home.file = { #should be able to make most of these in nix configs
".config/nitrogen/wallpaper.png".source = lib.mkDefault dotfiles/config/nitrogen/wallpaper.png;
".xinitrc".text = "exec bspwm";
".local/share/rofi/themes".source = "${builtins.fetchGit {
url = "https://github.com/newmanls/rofi-themes-collection";
rev = "c8239a45edced3502894e1716a8b661fdea8f1c9";
ref = "master";
}}/themes";
".local/bin/desk_sync".source = dotfiles/local/bin/desk_sync;
};
programs.home-manager.enable = true;
}

View File

@ -0,0 +1,5 @@
bspc monitor "HDMI-1-1" -d 1
bspc monitor "HDMI-0" -d 2 3
bspc monitor "DP-1-1" -d 4
bspc monitor "DP-0" -d 5
bspc desktop -f 2

View File

@ -0,0 +1,3 @@
#!/bin/sh
echo "AAAAAAAAAAAAAAAAAAAAAAAA"
xrandr --output DP-0 --mode 1280x1024 --pos 5120x56 --rotate normal --output DP-1 --off --output DP-2 --off --output DP-3 --off --output HDMI-0 --primary --mode 1920x1080 --pos 1920x0 --rotate normal --output DP-1-1 --mode 1280x1024 --pos 3840x56 --rotate normal --output HDMI-1-1 --mode 1920x1080 --pos 0x0 --rotate normal --output DP-1-2 --off --output HDMI-1-2 --off

View File

@ -0,0 +1,28 @@
{ ... }:
{
imports = [
../modules/nitrogen.nix
./hyprland.nix
];
wayland.windowManager.hyprland.settings = {
monitor = [
"HDMI-A-1, 1920x1080@60, 0x0, auto"
"HDMI-A-3, 1920x1080@60, 1920x0, auto"
"DP-1, 1280x1024@60, 3840x0, auto"
"DP-3, 1280x1024@60, 5120x0, auto"
];
workspace = [
"1, monitor:HDMI-A-1"
"2, monitor:HDMI-A-3, default:true"
"3, monitor:DP-1"
"4, monitor:DP-3"
];
};
home.file = {
".config/bspwm/screenlayout.sh".source = ./bspwm/screenlayout.sh;
".config/bspwm/host.sh".source = ./bspwm/host.sh;
};
}

View File

@ -0,0 +1 @@
bspc monitor -d 1 2 3 4 5

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,170 @@
#
# 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
alt + F7
brightnessctl s 10-
alt + F8
brightnessctl s 10+
#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

View File

@ -0,0 +1,18 @@
{ config, lib, pkgs, username,homeDir, ... }:
{
imports = [ ../modules/nitrogen.nix ];
home.packages = with pkgs;[
neovim
dmenu
brightnessctl
rofi
];
home.file = {
".config/sxhkd".source = dotfiles/config/sxhkd;
".config/bspwm/host.sh".source = ./bspwm/host.sh;
};
programs.firefox.enable = false;
}

View File

@ -0,0 +1,15 @@
INTEGRATED="eDP"
HDMI="HDMI-A-0"
if xrandr | grep "$HDMI connected" && cat /proc/acpi/button/lid/LID/state | grep "closed"; then
bash ~/.config/bspwm/screenLayoutDocked.sh
bspc monitor $HDMI -d 1 2 3 4 5
bspc monitor $INTEGRATED -r
elif xrandr | grep "$HDMI connected";then
bash ~/.config/bspwm/screenLayoutHDMI.sh
bspc monitor $INTEGRATED -d 1 2 3 4
bspc monitor $HDMI -d A B
else
bash ~/.config/bspwm/screenLayoutSingle.sh
bspc monitor -d 1 2 3 4 5
xrandr -r 60
fi

View File

@ -0,0 +1,2 @@
#!/bin/sh
xrandr --output eDP --off --output HDMI-A-0 --primary --mode 1920x1080 --pos 0x0 --rotate normal --output DP-1-0 --off --output DP-1-1 --off

View File

@ -0,0 +1,2 @@
#!/bin/sh
xrandr --output eDP --primary --mode 2560x1440 --pos 0x0 --rotate normal --output HDMI-A-0 --mode 1920x1080 --pos 2560x0 --rotate normal --output DP-1-0 --off --output DP-1-1 --off

View File

@ -0,0 +1,2 @@
#!/bin/sh
xrandr --output eDP --primary --mode 2560x1440 --pos 0x0 --rotate normal --output HDMI-A-0 --off --output DP-1-0 --off --output DP-1-1 --off

View File

@ -0,0 +1,20 @@
{ config, lib, pkgs, ... }:
{
imports = [
./hyprland.nix
./waybar.nix
];
# programs.alacritty.settings.font.size = 8;
home.packages = with pkgs; [
stremio
];
home.file = {
".config/bspwm/host.sh".source = ./bspwm/host.sh;
".config/bspwm/screenLayoutSingle.sh".source = ./bspwm/screenLayoutSingle.sh;
".config/bspwm/screenLayoutDocked.sh".source = ./bspwm/screenLayoutDocked.sh;
".config/bspwm/screenLayoutHDMI.sh".source = ./bspwm/screenLayoutHDMI.sh;
};
}

View File

@ -0,0 +1,16 @@
{ config, lib, pkgs, ... }:
{
wayland.windowManager.hyprland.settings = {
bind = [
#lock
", XF86Launch1, exec, hyprlock"
", XF86Launch4, exec, pkill activate-linux"
];
monitor= [
"eDP-1, 1920x1080@120, 0x0, 1"
"HDMI-A-1, 1920x1080@60, auto, auto"
];
env = [ "AQ_DRM_DEVICES,/dev/dri/card1"];
};
}

View File

@ -0,0 +1,20 @@
{ config, lib, pkgs, ... }:
{
programs.waybar.settings.mainBar = {
modules-right = lib.mkBefore ["custom/fans" "custom/dgpu"];
"custom/dgpu" = {
exec-if = "test \"$(supergfxctl -g)\" = \"Hybrid\" || test \"$(supergfxctl -g)\" = \"Vfio\"";
exec = "echo \" on |\"";
interval-if = 10;
interval =100;
};
"custom/fans" = {
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;
};
};
}

View File

@ -0,0 +1,6 @@
{ config, lib, pkgs, ... }:
{
home.packages = with pkgs;[lutris mangohud];
}

View File

@ -0,0 +1,28 @@
{ config, lib, pkgs, homeDir, ... }:
let
background = "${homeDir}/.config/nitrogen/wallpaper.png";
in
{
home.file.".config/nitrogen/bg-saved.cfg".text = ''
[xin_0]
file=${background}
mode=5
bgcolor=#000000
[xin_1]
file=${background}
mode=5
bgcolor=#000000
[xin_2]
file=${background}
mode=5
bgcolor=#000000
[xin_3]
file=${background}
mode=5
bgcolor=#000000
'';
}

View File

@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
{
wayland.windowManager.hyprland.settings = {
monitor= [
"virt-1, 1920x1080@60, 0x0, 1.0"
];
env = ["WLR_BACKENDS,headless"];
};
}

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,20 @@
{ lib, config, ... }:
{
options.mods.alacritty.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "install and config alacritty";
};
config = lib.mkIf config.mods.alacritty.enable {
programs.alacritty = {
enable = true;
settings = {
window.opacity = 0.9;
env.XTERM = "xterm-256color";
font.size = 10;
};
};
};
}

View File

@ -0,0 +1,19 @@
{ config, lib, inputs, ... }:
{
options.mods.firefox.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "install and configure firefox";
};
config = lib.mkIf config.mods.firefox.enable {
programs.firefox = {
enable = lib.mkDefault true;
profiles.default = {
extensions = with inputs.firefox-addons.packages."x86_64-linux";
[vimium ublock-origin];
};
};
};
}

View File

@ -0,0 +1,27 @@
{ config, lib, ... }:
{
options.mods.git.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "git configuration";
};
config = lib.mkIf config.mods.git.enable {
programs.git = {
enable = true;
userEmail = "tomoron@student.42angouleme.fr";
userName = "tomoron";
extraConfig = {
init.defaultBranch="master";
pull.rebase = true;
push.autoSetupRemote = true;
rerere.enabled = true;
};
aliases = {
fuck = "!f() { git reset --hard \"@{upstream}\" && git restore . && git clean -f .; };f";
back = "reset HEAD~";
};
};
};
}

View File

@ -0,0 +1,37 @@
{config, lib, pkgs, ...}:
{
options.mods.vim.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "install and configure vim";
};
config = lib.mkIf config.mods.vim.enable {
home.packages = with pkgs; [
clang-tools
neovim
nixd
nodejs_23
];
home.file = {
".config/nvim/init.vim".source = ../dotfiles/config/nvim/init.vim;
".vimrc".source = ../dotfiles/vimrc;
#install plug.vim
".local/share/nvim/site/autoload/plug.vim".source = "${builtins.fetchGit {
url = "https://github.com/junegunn/vim-plug";
rev = "d80f495fabff8446972b8695ba251ca636a047b0";
ref = "master";
}}/plug.vim";
#install stdheader 42
".config/nvim/plugin/stdheader.vim".source = "${builtins.fetchGit {
url = "https://github.com/42Paris/42header";
rev = "71e6a4df6d72ae87a080282bf45bb993da6146b2";
ref = "master";
}}/plugin/stdheader.vim";
};
};
}

View File

@ -0,0 +1,28 @@
{ lib, config, ... }:
{
config = lib.mkIf config.mods.hyprland.enable {
services.hypridle = {
enable = true;
settings = {
general.lock_cmd = "hyprlock";
general.before_sleep_cmd = "loginctl lock-session";
listener = [
{
timeout = 150;
on-timeout = "brightnessctl -s set 0";
on-resume = "brightnessctl -r";
}
{
timeout = 150;
on-timeout = "loginctl lock-session";
}
{
timeout = 600;
on-timeout = "systemctl suspend";
}
];
};
};
};
}

View File

@ -0,0 +1,175 @@
{ config, lib, pkgs, ... }:
{
options.mods.hyprland.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "install and configure hyprland and others";
};
config = lib.mkIf config.mods.hyprland.enable {
wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.settings = {
"$mainMod" = "SUPER";
bind = [
" , Print, exec, grim -t jpeg -g \"$(slurp)\" ~/screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg"
"$mainMod, Return, exec, alacritty"
"CTRL_ALT, Q, killactive,"
"SUPER_ALT, Q, exit,"
"$mainMod, S, togglefloating,"
"$mainMod, D, exec, rofi -show drun -show-icons"
"$mainMod, M, fullscreen, 1"
"$mainMod, F, fullscreen, 0"
# Move focus
"$mainMod, h, movefocus, l"
"$mainMod, l, movefocus, r"
"$mainMod, k, movefocus, u"
"$mainMod, j, movefocus, d"
#swap windows
"$mainMod SHIFT, h, swapwindow, l"
"$mainMod SHIFT, l, swapwindow, r"
"$mainMod SHIFT, k, swapwindow, u"
"$mainMod SHIFT, j, swapwindow, d"
# Switch workspaces with mainMod + [0-9]
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
# Move active window to a workspace with mainMod + SHIFT + [0-9]
"$mainMod SHIFT, 1, movetoworkspacesilent, 1"
"$mainMod SHIFT, 2, movetoworkspacesilent, 2"
"$mainMod SHIFT, 3, movetoworkspacesilent, 3"
"$mainMod SHIFT, 4, movetoworkspacesilent, 4"
"$mainMod SHIFT, 5, movetoworkspacesilent, 5"
"$mainMod SHIFT, 6, movetoworkspacesilent, 6"
"$mainMod SHIFT, 7, movetoworkspacesilent, 7"
"$mainMod SHIFT, 8, movetoworkspacesilent, 8"
"$mainMod SHIFT, 9, movetoworkspacesilent, 9"
"$mainMod SHIFT, 0, movetoworkspacesilent, 10"
# Scroll through existing workspaces with mainMod + scroll
"$mainMod, mouse_down, workspace, e+1"
"$mainMod, mouse_up, workspace, e-1"
];
bindm = [
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
bindel = [
" ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
" ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
" ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
" ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
" ,XF86MonBrightnessUp, exec, brightnessctl s 10%+"
" ,XF86MonBrightnessDown, exec, brightnessctl s 10%-"
" ,XF86KbdBrightnessUp, exec, asusctl -n"
" ,XF86KbdBrightnessDown, exec, asusctl -p"
];
bindl = [
" , XF86AudioNext, exec, playerctl next"
" , XF86AudioPause, exec, playerctl play-pause"
" , XF86AudioPlay, exec, playerctl play-pause"
" , XF86AudioPrev, exec, playerctl previous"
];
windowrulev2 = [
#ignore maximize requests
"suppressevent maximize, class:.*"
#fix dragging issues with xwayland
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
];
input = {
kb_layout = "fr";
kb_variant = "us";
follow_mouse = 2;
kb_options = "caps:none";
touchpad.natural_scroll = false;
};
misc = {
force_default_wallpaper = 1;
disable_hyprland_logo = true;
};
dwindle = {
pseudotile = true;
force_split = 2;
};
animations = {
enabled = true;
bezier = [
"easeInOut, 0.77, 0, 0.175, 1"
"easeOut, 0.24, 0.66, 0.04, 1"
];
animation = [
"windows, 1, 2, easeInOut"
"windowsIn, 1, 2, easeInOut, slide"
"windowsOut, 1, 2, easeInOut, slide"
"fade, 1, 2, easeInOut"
"workspaces, 1, 2, easeOut"
];
};
decoration = {
rounding = 10;
shadow = {
enabled = true;
range = 4;
render_power = 3;
color = "rgba(1a1a1aee)";
};
blur = {
enabled = true;
size = 3;
passes = 1;
vibrancy = 0.1696;
};
};
general = {
gaps_in = 3;
gaps_out = 7;
border_size = 2;
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
"col.inactive_border" = "rgba(595959aa)";
resize_on_border = false;
allow_tearing = false;
layout = "dwindle";
};
cursor.no_warps = true;
env = [
"HYPRCURSOR_SIZE,17"
"HYPRCURSOR_THEME,bibata-modern-classic"
];
exec-once = [
"swaybg -i ~/.config/nitrogen/wallpaper.png&"
"(sleep 2;activate-linux)&"
"waybar&"
"alacritty&"
];
};
};
}

View File

@ -0,0 +1,32 @@
{ lib, config, ... }:
{
config = lib.mkIf config.mods.hyprland.enable {
programs.hyprlock.enable = true;
programs.hyprlock.settings = {
general = {
no_fade_out = true;
ignore_empty_input = false;
};
background = {
monitor = "";
path = "~/.config/nitrogen/wallpaper.png";
blur_passes = 1;
};
input-field = {
monitor = "";
size = "300, 50";
dot_size = "0.2";
dots_fade_time = 100;
inner_color = "rgb(139,89,100)";
outer_color = "rgb(139,89,100)";
outline_thickness = 1;
fail_transition = "300";
fail_text = "learn to write, idiot";
};
};
};
}

View File

@ -0,0 +1,13 @@
{ pkgs, lib, config, ... }:
{
config = lib.mkIf config.mods.hyprland.enable {
home.packages = with pkgs; [
rofi-wayland
grim
slurp
wl-clipboard
swaybg
];
};
}

View File

@ -0,0 +1,149 @@
{ config, lib, ... }:
{
config = lib.mkIf config.mods.hyprland.enable {
programs.waybar.enable = true;
programs.waybar.style = ''
* {
border: none;
border-radius: 0;
font-family: "Iosevka Nerd Font";
font-size: 15px;
min-height: 0;
}
window#waybar {
background: transparent;
color: white;
}
#window {
font-weight: bold;
}
#workspaces button {
padding: 0 5px;
background: transparent;
color: white;
border-top: 2px solid transparent;
}
#workspaces button.focused {
color: #c9545d;
border-top: 2px solid #c9545d;
}
#workspaces button.active {
color : #88ff88;
background-color : rgba(220,255, 220, 0.3)
}
#mode {
background: #64727D;
border-bottom: 3px solid white;
}
#network.disconnected {
color: #f53c3c;
font-weight:bold;
}
#temperature.critical {
color: #ff2222;
}
'';
programs.waybar.settings.mainBar = {
layer = "top";
position ="top";
height = 24;
margin-left = 5;
margin-right = 5;
modules-left = ["hyprland/workspaces" "custom/music"];
modules-center = ["hyprland/window"];
modules-right = ["disk" "pulseaudio" "network" "custom/pipe" "cpu" "temperature" "custom/pipe" "memory" "battery" "clock"];
"hyprland/workspaces" = {
disable-scroll = true;
all-outputs = false;
format = "{id}";
};
clock = {
interval = 1;
format-alt = " {:%Y-%m-%d}";
format = " {:%H:%M:%S}";
};
cpu = {
format = " {usage}% |";
interval = 5;
};
memory = {
format = " {}% |";
interval = 5;
};
battery = {
bat = "BAT0";
states = {
good = 79;
warning = 30;
critical = 15;
};
format-time = " {H}:{m}";
format = " {icon} {capacity}%{time} |";
format-icons = [" " " " " " " " " "];
interval = 10;
};
network = {
format-wifi = " {icon} {essid} ";
format-ethernet = " {ifname}: {ipaddr}/{cidr} ";
format-disconnected = " Disconnected ";
format-icons =["󰤟 " "󰤢 " "󰤥 " "󰤨 "];
};
pulseaudio = {
format = " {icon}{volume}% |";
format-bluetooth = " {icon} {volume}% |";
format-muted = "";
format-icons = {
headphones = " ";
handsfree = "󰋎 ";
headset = "󰋎 ";
phone = " ";
portable = " ";
car = " ";
default = [" " " " " "];
};
on-click = "pavucontrol";
};
temperature = {
thermal-zone = 0;
critical-threshold = 80;
interval = 5;
format =" {icon} {temperatureC}°C ";
format-icons = ["" "" "" "" ""];
};
disk = {
format =" 󰋊 {percentage_used}% |";
};
"custom/pipe" = {
format = "|";
};
"custom/music" = {
exec-if = "playerctl metadata 2>&1 >/dev/null";
exec = "playerctl metadata --format ' {{ artist }} - {{title}}'";
interval = 1;
interval-if = 5;
};
};
};
}

View File

@ -0,0 +1,39 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# bspwm.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/02/10 00:21:11 by tomoron #+# #+# #
# Updated: 2025/02/10 00:30:13 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{lib, config, ... }:
{
config = lib.mkIf config.mods.x11.enable {
xsession.windowManager.bspwm.enable = true;
xsession.windowManager.bspwm.extraConfig = ''
#/bin/sh
pgrep sxhkd > /dev/null || sxhkd &
pgrep polybar >/dev/null || 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 gapless_monocle true
pgrep alacritty > /dev/null || alacritty &
pgrep picom > /dev/null || picom &
pgrep dunst >/dev/null || dunst &
numlockx on &
setxkbmap fr us&
nitrogen --restore &
pgrep activate-linux >/dev/null || (sleep 2;activate-linux -d)&
''; # this is messy but i don't care, x11 isn't my default now.
};
}

View File

@ -0,0 +1,27 @@
{ config, lib, pkgs, username,homeDir, ... }:
{
config = lib.mkIf config.mods.x11.enable {
services.picom = {
enable = true;
package = pkgs.picom-pijulius;
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'"
];
};
};
};
}

View File

@ -0,0 +1,236 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# polybar.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/02/10 02:51:32 by tomoron #+# #+# #
# Updated: 2025/02/10 03:19:27 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ lib, config, ... }:
{
config = lib.mkIf config.mods.x11.enable {
services.polybar.enable = true;
services.polybar.config = {
"global/wm" = {
margin-bottom = 0;
margin-top = 0;
};
color = {
background = "#AA111111";
foreground = "#CCCCCC";
foreground-alt = "#FFFFFF";
alpha = "#00000000";
shade1 = "#AAFFFFFF";
shade2 = "#AAFF0000";
};
"module/memory" = {
type = "internal/memory";
interval = 1;
format = "<label>";
format-prefix = "";
format-prefix-font = 2;
format-padding = 1;
label = " %percentage_used%%";
};
"module/filesystem" = {
type = "internal/fs";
mount-0 = "/";
interval = 30;
fixed-values = true;
format-mounted = "<label-mounted>";
format-mounted-prefix = "󰋊";
format-mounted-prefix-font = 2;
format-mounted-padding = 2;
label-mounted = " %percentage_used%%";
label-unmounted = " %mountpoint%: not mounted";
};
"module/cpu" = {
type = "internal/cpu";
interval = 1;
format = "<label>";
format-prefix = " ";
format-prefix-font = 2;
format-foreground = "\${color.foreground}";
format-padding = 1;
label = " %percentage%%";
};
"module/temperature" = {
type = "internal/temperature";
interval = 1;
thermal-zone = 0;
hwmon-path = "/sys/devices/virtual/thermal/thermal_zone0/temp";
warn-temperature = 80;
units = true;
format = "<ramp> <label>";
format-padding = 1;
format-warn = "<ramp> <label-warn>";
format-warn-foreground = "#FF0000";
format-warn-padding = 1;
label = "%temperature-c%";
label-warn = "%temperature-c%";
ramp-0 = "";
ramp-1 = "";
ramp-2 = "";
ramp-3 = "";
ramp-4 = "";
ramp-font = 2;
};
"module/sep" = {
type = "custom/text";
content = "|";
content-foreground = "#FFFFFF";
};
"module/space" = {
type = "custom/text";
content = " ";
content-padding=1;
};
"module/network" = {
type = "internal/network";
interface = "wlp2s0";
interval = 1.0;
accumulate-stats = true;
unknown-as-up = true;
format-connected = "<ramp-signal><label-connected>";
format-connected-prefix = "";
format-connected-prefix-font = 2;
format-connected-padding = 1;
format-disconnected = "<label-disconnected>";
format-disconnected-prefix = "󱚼 ";
format-disconnected-prefix-font = 2;
format-disconnected-padding = 1;
label-connected = "%{A1:networkmanager_dmenu &:} %essid%%{A}";
label-disconnected = "%{A1:networkmanager_dmenu &:}%{A}";
ramp-signal-0 = "󰤟 ";
ramp-signal-1 = "󰤢 ";
ramp-signal-2 = "󰤨 ";
};
"module/date" = {
type = "internal/date";
interval = 1.0;
time = " %H:%M:%S";
time-alt = " %a, %d %b %Y";
format = "<label>";
format-prefix = " ";
format-prefix-font = 2;
format-foreground = "\${color.foreground}";
format-padding = 1;
label = "%time%";
};
"module/workspaces" = {
type = "internal/xworkspaces";
pin-workspaces = false;
enable-click = true;
enable-scroll = false;
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;
format = "<label-state>";
format-font = 3;
format-background = "#0000FF";
format-foreground = "#FF0000";
label-monitor = "%name%";
label-active = "%icon%";
label-active-background = "#44ffffff";
label-active-foreground = "#00FF00";
label-occupied = "%icon%";
label-occupied-background = "#00FFFFFF";
label-occupied-foreground = "#00FF00";
label-urgent = "%icon%";
label-urgent-background = "\${color.background}";
label-urgent-foreground = "#CC6666";
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;
};
"module/mpris" = {
type = "custom/script";
exec-if = "playerctl metadata";
exec = "playerctl metadata --format '{{ playerName }}:{{ artist }} - {{title}}'";
interval = 1;
interval-if = 1;
};
"bar/main" = {
monitor = "\${env:MONITOR:}";
monitor-fallback = "";
monitor-strict = false;
override-redirect = false;
bottom = false;
fixed-center = true;
width = "100%";
height = 40;
offset-x = 0;
offset-y = 0;
background = "\${color.alpha}";
foreground = "\${color.foreground}";
radius-top = 0.0;
radius-bottom = 0.0;
underline-size = 2;
underline-color = "\${color.foreground}";
border-size = 0;
border-color = "\${color.background}";
padding = 0;
module-margin-left = 0;
module-margin-right = 0;
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-left = "workspaces space mpris";
modules-center = "";
modules-right = "memory sep filesystem sep cpu sep temperature sep network sep date";
separator = "";
dim-value = 1.0;
tray-position = "none";
tray-detached = false;
tray-maxsize = 16;
tray-background = "\${color.background}";
tray-offset-x = 0;
tray-offset-y = 0;
tray-padding = 0;
tray-scale = 1.0;
enable-ipc = true;
};
settings = {
throttle-output = 5;
throttle-output-for = 10;
screenchange-reload = false;
compositing-background = "source";
compositing-foreground = "over";
compositing-overline = "over";
compositing-underline = "over";
compositing-border = "over";
pseudo-transparency = false;
};
};
};
}

View File

@ -0,0 +1,77 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# sxhkd.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/02/10 00:32:47 by tomoron #+# #+# #
# Updated: 2025/02/10 01:17:29 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ lib, config, ... }:
{
config = lib.mkIf config.mods.x11.enable {
services.sxhkd.enable = true;
services.sxhkd.keybindings = {
"super + Return" = "alacritty";
"super + d" = "dmenu_run";
"super + shift + d" = "dmenu_run";
"super + Escape" = "pkill -USR1 -x sxhkd";
"super + alt + {q,r}" = "bspc {quit,wm -r}";
"control + alt + {_,shift + }q" = "bspc node -{c,k}";
"super + m" = "bspc desktop -l next";
"super + y" = "bspc node newest.marked.local -n newest.!automatic.local";
"super + g" = "bspc node -s biggest.window";
"super + {t,shift + t,s,f}" = "bspc node -t {tiled,pseudo_tiled,floating,fullscreen}";
"super + ctrl + {m,x,y,z}" = "bspc node -g {marked,locked,sticky,private}";
"super + {_,shift + }{h,j,k,l}" = "bspc node -{f,s} {west,south,north,east}";
"super + {p,b,comma,period}" = "bspc node -f @{parent,brother,first,second}";
"super + {_,shift + }c" = "bspc node -f {next,prev}.local.!hidden.window";
"super + bracket{left,right}" = "bspc desktop -f {prev,next}.local";
"super + {grave,Tab}" = "bspc {node,desktop} -f last";
"super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} '^{1-9,10}'";
#
# preselect
#
"super + ctrl + {h,j,k,l}" = "bspc node -p {west,south,north,east}";
"super + ctrl + {1-9}" = "bspc node -o 0.{1-9}";
"super + ctrl + space" = "bspc node -p cancel";
"super + ctrl + shift + space" = "bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel";
#
# move/resize
#
"super + alt + {h,j,k,l}" = "bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}";
"super + alt + shift + {h,j,k,l}" = "bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}";
"super + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}";
"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";
"alt + F7" = "brightnessctl s 10-";
"alt + F8" = "brightnessctl s 10+";
"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";
};
};
}

View File

@ -0,0 +1,16 @@
{ lib, pkgs, config , ... }:
{
options.mods.x11.enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "configure x11";
};
config = lib.mkIf config.mods.x11.enable {
home.packages = with pkgs; [
nitrogen
numlockx
];
};
}

37
homeConfigs/packages.nix Normal file
View File

@ -0,0 +1,37 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# packages.nix :+: :+: :+: #
# +:+ +:+ +:+ #
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/02/09 22:01:56 by tomoron #+# #+# #
# Updated: 2025/02/10 05:08:00 by tomoron ### ########.fr #
# #
# **************************************************************************** #
{ pkgs, ...}:
{
home.packages = with pkgs;[
neovim
ripgrep
activate-linux
unison
discord
google-chrome
brightnessctl
playerctl
python3
vlc
nerd-fonts.iosevka
moonlight-qt
nix-index
yubikey-manager
yubico-pam
dunst
bibata-cursors
];
}