Git Product home page Git Product logo

dotfiles's People

Contributors

bastisawesome avatar

Stargazers

 avatar

Watchers

 avatar

dotfiles's Issues

QTile: Automate Screen Generation

I'm uncertain how viable this is, will need to look into some stuff, but in similar to #28, there should be a way to make the QTile configuration detect how many screens there are and generate each screen dynamically.

There are two possible ways to do this, depending on necessity, and if it is possible to detect number of screens at config load, I could also have some method for overriding the screen configurations. While I personally don't mind having every screen identical, there may be some use-cases where a screen should have a slightly different configuration.

The first way to solve this is simply detect number of screens and add a screen to the screens list. e.g.:

...
for num_screens in range(get_num_screens()):
    screens.append(Screen(...))
...

The second way I currently have no quick pseudo-code mockup to do, but in theory would work in this way:

  • Have a list of overrides for screens
  • Get number of screens
  • Enable each override per number of screens

This could potentially look similar to:

...
screen_overrides = [
    Screen(...),
    Screen(...),
    Screen(...),
]

for screen_num in range(get_num_screens()):
    screens.append(screen_overrides[num] or ...) # This would need some method of generating a default in case of list OoB
...

The latter approach is the most versatile, and could possibly even be replaced with a dictionary. This would allow proper overrides by indexing with numbers and not require overriding all previous screens (if you wanted them to be defaulted) just to override another screen. Or if you wanted to override screens 1 and 3 but leave 2 as default. Some further design considerations will need to be made.

Untrack Unncessesary Files

Currently the entirety of the .config directory are tracked by the repo. This includes some applications that do not need to be tracked. Below is a list of files that may not have been intended to be tracked.

  • keepassxc/
  • libfm
  • pcmanfm/
  • QtProject.conf

QTile: Dynamically Generate Bar Widgets

Currently to get multi-screen support (particularly with the same bars), I've got each bar being created as a custom object. It may be better to use a function to generate the bars, particularly some helper functions to generate the widget list.

For example:

...
def init_bar_widgets() -> ...:
    widget_list = [...]
    return widget_list

screens = [
    Screen(top=bar.Bar(widgets=init_bar_widgets(), ...),
    Screen(top=bar.Bar(widgets=init_bar_widgets(), ...),
]
...

Run XDG-Ninja

XDG-Ninja is a program that can be used to track dotfiles in the home directory on Linux and list applications that support moving those dotfiles into .config/ per the XDG base directory standard. While not directly related to this project, using this tool will allow for updating this repo to ensure all configurations are properly tucked away out of sight.

This issue mostly exists as a way to document the tool for the project.

Disable CTRL+S/CTRL+Q

In the .bashrc, probably near the shopt commands, there should be the line stty -ixoff to disable shell suspending and continuation.

QTile TODOs For 01/10/2023

  • Add shortcuts for floating/unfloating windows
  • Customise the theme to add borders around windows
  • Add shortcut to flip between different layouts
  • Add different layouts

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.